ขั้นตอนด้านล่างใช้ได้ผลสำหรับฉัน มันใช้ก๊อกอัญมณีสร้างโดย Heroku และกล่าวถึงใน Railscast ของ Ryan Bates # 342 มีขั้นตอนไม่กี่ขั้นตอน แต่ทำงานได้อย่างสมบูรณ์ (แม้กระทั่งวันที่ก็ถูกโยกย้ายอย่างถูกต้อง) และง่ายกว่าการย้าย Oracle -> DB2 หรือ SQL Server -> Oracle ที่ฉันเคยทำในอดีตมาก
โปรดทราบว่า SQLite ไม่มี ID ผู้ใช้หรือรหัสผ่าน แต่อัญมณีการแตะต้องมีบางอย่าง ฉันเพิ่งใช้ตัวอักษร "ผู้ใช้" และ "รหัสผ่าน"
สร้างผู้ใช้ฐานข้อมูล Postgres สำหรับฐานข้อมูลใหม่
$ 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
แก้ไข - คำสั่งที่อัปเดตด้านล่าง - ใช้สิ่งนี้แทน
$ createuser f3 -d -s
สร้างฐานข้อมูลที่ต้องการ
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
อัปเดต Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
อัปเดต 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:
เริ่มเซิร์ฟเวอร์ taps บนฐานข้อมูล sqlite
$ taps server sqlite://db/development.sqlite3 user password
ย้ายข้อมูล
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
รีสตาร์ทเว็บเซิร์ฟเวอร์ Rails
$ rails s
ล้างข้อมูล Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle