Die folgenden Schritte haben bei mir funktioniert. Es nutzt die Hähne Juwel, erstellt von Heroku und in Ryan Bates Railscast # 342 erwähnt. Es gibt ein paar Schritte, aber es hat perfekt funktioniert (sogar Daten wurden korrekt migriert), und es war weitaus einfacher als die Oracle-> DB2- oder SQL Server-> Oracle-Migrationen, die ich in der Vergangenheit durchgeführt habe.
Beachten Sie, dass SQLite keine Benutzer-ID oder kein Kennwort hat, für das Taps-Juwel jedoch etwas erforderlich ist. Ich habe gerade die Literale "Benutzer" und "Passwort" verwendet.
Erstellen Sie den Postgres-Datenbankbenutzer für die neuen Datenbanken
$ 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
BEARBEITEN - Befehl unten aktualisiert - verwenden Sie diesen stattdessen
$ createuser f3 -d -s
Erstellen Sie die erforderlichen Datenbanken
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Aktualisieren Sie die Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Aktualisieren Sie 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:
Starten Sie den Taps-Server in der SQLite-Datenbank
$ taps server sqlite://db/development.sqlite3 user password
Migrieren Sie die Daten
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Starten Sie den Rails-Webserver neu
$ rails s
Bereinigen Sie die Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle