以下の手順でうまくいきました。Herokuによって作成され、Ryan BatesのRailscast#342で言及されているタップの宝石を使用しています。いくつかの手順がありますが、完全に機能し(日付も正しく移行されました)、Oracle-> DB2またはSQL Server->以前に行ったOracleの移行よりもはるかに簡単でした。
SQLiteにはユーザーIDまたはパスワードはありませんが、タップの宝石には何かが必要です。私はリテラル「ユーザー」と「パスワード」を使用しました。
新しいデータベースの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