Los siguientes pasos funcionaron para mí. Utiliza la gema de grifos , creada por Heroku y mencionada en Railscast # 342 de Ryan Bates. Hay algunos pasos, pero funcionó perfectamente (incluso las fechas se migraron correctamente), y fue mucho más fácil que las migraciones de Oracle -> DB2 o SQL Server -> Oracle que he hecho en el pasado.
Tenga en cuenta que SQLite no tiene una identificación de usuario o contraseña, pero la gema de grifos requiere algo. Acabo de usar los literales "usuario" y "contraseña".
Cree el usuario de la base de datos Postgres para las nuevas bases de datos.
$ 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
EDITAR - Comando actualizado a continuación - use esto en su lugar
$ createuser f3 -d -s
Crea las bases de datos requeridas
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Actualiza el Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Actualizar 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:
Inicie el servidor de grifos en la base de datos sqlite
$ taps server sqlite://db/development.sqlite3 user password
Migrar los datos.
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Reinicie el servidor web Rails
$ rails s
Limpiar el Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle