Les étapes ci-dessous ont fonctionné pour moi. Il utilise le bijou taps , créé par Heroku et mentionné dans le Railscast # 342 de Ryan Bates. Il y a quelques étapes mais cela a parfaitement fonctionné (même les dates ont été correctement migrées), et c'était beaucoup plus facile que les migrations Oracle -> DB2 ou SQL Server -> Oracle que j'ai effectuées dans le passé.
Notez que SQLite n'a pas d'identifiant d'utilisateur ni de mot de passe, mais le gem taps nécessite quelque chose. J'ai juste utilisé les littéraux «utilisateur» et «mot de passe».
Créer l'utilisateur de la base de données Postgres pour les nouvelles bases de données
$ 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 - Commande mise à jour ci-dessous - utilisez-la à la place
$ createuser f3 -d -s
Créez les bases de données requises
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Mettre à jour le Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Mettre à jour 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:
Démarrez le serveur taps sur la base de données sqlite
$ taps server sqlite://db/development.sqlite3 user password
Migrer les données
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Redémarrez le serveur Web Rails
$ rails s
Nettoyer le Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle