Langkah-langkah di bawah ini berhasil untuk saya. Itu menggunakan permata keran , dibuat oleh Heroku dan disebutkan dalam Railscast # 342 Ryan Bates. Ada beberapa langkah tetapi bekerja dengan sempurna (bahkan tanggal pun dimigrasikan dengan benar), dan itu jauh lebih mudah daripada Oracle -> DB2 atau SQL Server -> migrasi Oracle yang telah saya lakukan di masa lalu.
Perhatikan bahwa SQLite tidak memiliki id pengguna atau kata sandi, tetapi gem ketukan memerlukan sesuatu. Saya hanya menggunakan literal "pengguna" dan "kata sandi".
Buat pengguna basis data Postgres untuk basis data baru
$ createuser f3
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
EDIT - Perintah yang diperbarui di bawah ini - gunakan ini sebagai gantinya
$ createuser f3 -d -s
Buat database yang diperlukan
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Perbarui Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Perbarui database.yml
#development:
# adapter: sqlite3
# database: db/development.sqlite3
# pool: 5
# timeout: 5000
development:
adapter: postgresql
encoding: unicode
database: f3_development
pool: 5
username: f3
password:
#test:
# adapter: sqlite3
# database: db/test.sqlite3
# pool: 5
# timeout: 5000
test:
adapter: postgresql
encoding: unicode
database: f3_test
pool: 5
username: f3
password:
Mulai keran server pada basis data sqlite
$ taps server sqlite://db/development.sqlite3 user password
Migrasikan data
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Mulai ulang server web Rails
$ rails s
Bersihkan Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle