Poniższe kroki zadziałały dla mnie. Używa klejnotu taps , stworzonego przez Heroku i wspomnianego w Railscast # 342 Ryana Batesa. Jest kilka kroków, ale zadziałało idealnie (nawet daty zostały poprawnie zmigrowane) i było o wiele łatwiejsze niż Oracle -> DB2 lub SQL Server -> Oracle migracje, które robiłem w przeszłości.
Zauważ, że SQLite nie ma identyfikatora użytkownika ani hasła, ale klejnot taps czegoś wymaga. Po prostu użyłem literałów „użytkownik” i „hasło”.
Utwórz użytkownika bazy danych Postgres dla nowych baz danych
$ 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
EDYCJA - zaktualizowane polecenie poniżej - użyj go zamiast tego
$ createuser f3 -d -s
Utwórz wymagane bazy danych
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Zaktualizuj plik Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Zaktualizuj 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:
Uruchom serwer taps w bazie danych sqlite
$ taps server sqlite://db/development.sqlite3 user password
Przeprowadź migrację danych
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Zrestartuj serwer WWW Rails
$ rails s
Oczyść plik Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle