2011-08-07 28 views
5

Tôi có một ứng dụng web sử dụng SQLite. Tôi triển khai nó trên heroku sử dụng PostgreSLQ. Điều này gây ra vấn đề đôi khi và tôi đã được khuyên để phát triển ứng dụng của tôi bằng cách sử dụng PostgreSQL thay vì SQLite.ROR thay đổi cơ sở dữ liệu ứng dụng từ SQLite sang PostgreSQL

tôi phát hiện ra rằng tôi nên sửa đổi database.yml như thế (tương tự cho thử nghiệm và sản xuất):

development: 
    adapter: postgresql 
    database: my_database 
    username: my_username 
    password: my_passwod 
    host: /var/run/postgresql or localhost 

Vâng cơ sở dữ liệu duy nhất mà tôi đã từng sử dụng là SQLite, vì vậy tôi chỉ cố gắng để mất cơ hội của tôi, nhưng không thành công. Tôi điền tập tin này với một số dữ liệu ngẫu nhiên.

rake db:migrate dẫn:

Khi tôi sử dụng host: localhost

> could not connect to server: Connection refused Is the server running 
> on host "localhost" and accepting TCP/IP connections on port 5432? 

Khi host: /var/run/postgresql

> could not connect to server: No such file or directory 
> Is the server running locally and accepting connections on Unix domain socket 
> "/var/run/postgresql/.s.PGSQL.5432"? 

Tôi cho rằng tôi nên bắt đầu máy chủ PostgreSQL đầu tiên, nhưng không có ý tưởng làm thế nào để làm điều này. Vui lòng cho tôi từng bước trả lời cách chuyển từ ứng dụng SQLite sang ứng dụng PostgreSQL đang hoạt động.

+0

Dưới đây là hướng dẫn để bắt đầu với Ruby on Rails và Postgres: http://vandenabeele.com/Rails-on-Ubuntu-Jaunty. Và đây là một bước đi từng bước chỉ dành cho Postgres: http://www.yolinux.com/TUTORIALS/LinuxTutorialPostgreSQL.html. – atrain

+0

có thể trùng lặp của http://stackoverflow.com/questions/6710654/how-do-you-easily-change-from-sqlite-to-postgresql-in-rails –

Trả lời

2

Tôi muốn thông báo cho bạn rằng bạn nên tải xuống Postgresql bao gồm bản thân PGADMIN dễ sử dụng hơn thiết bị đầu cuối psql.

Và tôi nghĩ khi bạn tải xuống/cài đặt Postgresql từ trang web chính thức của họ ... gói đã hoàn tất rồi.

Khi cài đặt, postgresql sẽ hỏi bạn một mật khẩu nào đó mà bạn sẽ sử dụng khi truy cập máy chủ postgresql của mình.

Sau khi cài đặt, mở PGADMIN và kết nối với máy chủ. Nhập mật khẩu của bạn (mà bạn đã khai báo trong khi cài đặt).

Nếu bạn không thể kết nối với máy chủ, sau đó chỉnh sửa cổng. Để làm điều này, kích chuột phải vào máy chủ sau đó đi đến tài sản ... chỉnh sửa cổng vào một cái gì đó mà là miễn phí. Ví dụ: 5433 v.v. Tuỳ bạn.

Nếu mọi thứ cuối cùng làm việc ... thiết lập cấu hình chính xác cho database.yml của bạn

này rất quan trọng:

development: 
    adapter: postgresql 
    database: name_of_database_here 
    host: localhost 
    username: postgres 
    password: your_db_server_password_here 
    pool: 5 
    timeout: 5000 
    port: 5433 

rồi từ đó thông tin cấu hình trên, xác định những phần quan trọng. Theo mặc định, tên người dùng máy chủ db của bạn là postgres và rõ ràng máy chủ lưu trữ của bạn là localhost vì bạn đang thiết lập theo sự phát triển.

Nếu cổng của bạn là 5432 theo mặc định thì chỉ cần loại bỏ phần cổng.

Hãy truy cập gemfile của bạn.

Để bạn triển khai ứng dụng của mình trong heroku. Sử dụng gem 'pg' thay vì sqlite3.

Nếu bạn có cơ sở dữ liệu sqlite3 hiện có, sau đó đặt đá quý bên trong nhóm phát triển. Trong trường hợp đó, Heroku sẽ thành công trong quá trình git đẩy quá trình tổng thể heroku.

group :development do 
     gem 'sqlite3' 
end 

gem 'pg' của bạn có thể đi ra ngoài nhóm hoặc đặt trong nhóm sản xuất của bạn.

Quan trọng:

Trước bất kỳ quy trình triển khai nào, hãy đảm bảo rằng bạn có thể chạy ứng dụng cục bộ (localhost). Sau đó, nếu tất cả mọi thứ đang hoạt động ... đó là thời gian mà bạn nên tổ chức các công cụ cần thiết một cách thích hợp.

Nếu bạn muốn chuyển sang Postgresql thay vì sqlite3 sau khi đẩy ứng dụng vào Heroku ... bạn có thể làm như vậy bằng tiện ích pgbackups và pg_restore tệp kết xuất vào máy chủ db postgresql cục bộ của bạn.

Vậy đó. Hy vọng nó giúp.

Các vấn đề liên quan