Một người bạn của tôi cũng gặp phải vấn đề tương tự khi sử dụng Ruby 2.0 trên Windows 7 với Postgres. Nó không chỉ xảy ra khi cố gắng phá hủy một bộ điều khiển, mà cho mọi hành động cơ sở dữ liệu (bao gồm cả rake db:create). Vấn đề là tệp pg_ext.so không được bao gồm cho ruby 2.0. Nó được bao gồm cho 1.9, nhưng chỉ cần sao chép nó vào 2.0 có vẻ không hoạt động. Tuy nhiên, tôi đã tìm thấy một phương pháp khác để lấy đúng pg_ext.so. Không chắc chắn chính xác tại sao điều này hiệu quả, nhưng nó có hiệu quả với anh ta. Đây là những gì bạn cần làm:
- Chuyển đến thư mục chứa 2.0 / pg_ext.so (không thể tìm thấy tệp). Trong trường hợp của bạn, C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
- Tạo một thư mục có tên '2.0' (không có dấu ngoặc kép) tại đây.
- Trong thư mục này, bạn sẽ cần tệp pg_ext.so chính xác. Bạn có thể lấy điều này theo cách sau:
- Cài đặt pg gem theo cách thủ công ("gem install pg" trong bảng điều khiển). Thao tác này sẽ cài đặt phiên bản gem không phải x86-mingw32. Nó không khắc phục được sự cố, nhưng nó tạo ra pg_ext.so chính xác. Tôi nghĩ điều này là do nó biên dịch đá quý pg cho hệ thống của bạn, vì vậy đối với ruby 2.0. Sau đó, bạn có thể sử dụng tệp pg_ext.so này với phiên bản pg x86-mingw32. Bạn sẽ cần DevKit để biên dịch và cài đặt pg ( http://rubyinstaller.org/add- ons / devkit / ).
- Đi tới vị trí của pg_ext.so trong thư mục pg-0.14.1 gem. Trong trường hợp của bạn, đây sẽ là C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
- Sao chép tệp pg_ext.so từ thư mục này vào thư mục pg-0.14.1-x86-mingw32 / lib / 2.0 / mới ở bước 2.
- Bây giờ hãy thử lại các lệnh của bạn và kiểm tra xem mọi thứ có hoạt động không. Nếu không, hãy xóa Gemfile.lock của bạn và chạy lại cài đặt gói.
- Vấn đề tương tự với viên ngọc này cũng có thể xảy ra với các viên đá quý mingw32 khác. Ví dụ:tôi gặp vấn đề tương tự với gem bcrypt-rails. Làm theo các bước tương tự như mô tả ở trên đã khắc phục sự cố. Tôi hiện đang chạy thành công Ruby 2.0 trên Windows 7.
Ps. Nếu bạn gặp bất kỳ sự cố nào khác khi chạy pg gem trên Windows 7 64 bit, hãy thử cài đặt phiên bản 32 bit x86 của Ruby (RubyInstaller) và postgresql. Hơn nữa, hãy đảm bảo bạn bao gồm các thư mục Ruby trong đường dẫn của mình (đây là một tùy chọn trong khi cài đặt ruby 2.0 bằng RubyInstaller) cũng như các thư mục Postgresql lib và bin.
Chúc bạn thành công!