Следующие ниже шаги сработали для меня. Он использует краны камень, созданный Heroku и упоминается в Райана Бейтса Railscast # 342. Есть несколько шагов, но это сработало отлично (даже даты были правильно перенесены), и это было намного проще, чем миграции Oracle -> DB2 или SQL Server -> Oracle, которые я делал в прошлом.
Обратите внимание, что SQLite не имеет идентификатора пользователя или пароля, но для гема taps что-то требуется. Я просто использовал литералы «пользователь» и «пароль».
Создайте пользователя базы данных 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:
Запустите сервер кранов в базе данных 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