11 views
# Docker内のRails Application(Fastladder)のSQLiteからPostgreSQLへの移行(失敗) ###### tags: `Server` 実施日:2018年05月05,06日 ## 参考文献 [13さいの備忘録 : SQLite3→MySQLへデータ移行](http://blog.livedoor.jp/nizoraul/archives/3409614.html) ## 作業手順 まずは、fastladderのImageをそのままに、dockerの環境へ入る。 ```shell docker run -it --rm -v /srv/fastladder:/fastladder/db fastladder /bin/bash ``` 今回のImageでは、デフォルトでエディタが入っていないため、エディタを導入する。 ```shell apt-get update && apt-get install -y vim ``` GemFileを編集し`yaml_db`を利用できるようにし、インストールを行う。 ```shell vim GemFile # 上のコマンドで、「gem 'yaml_db'」を適当な位置に追加する bundle install ``` DatabaseをDumpする。Databaseが置かれている場所にもよるが、非常に時間(半日レベル)がかかるので注意。 ```shell rake db:dump RAILS_ENV=production ``` 完了後、新環境に入る。今回は、新たに`docker-compose`を利用して管理を行うことにしたので、適切に`docker-compose.yml`の設定後、以下のコマンドにて新環境に入る。 適切に、`depends_on`を設定してあれば、同時にDatabaseも起動する。 ```shell docker-compose run fastladder /bin/bash ``` 再びエディタを導入し、`yaml_db`を利用可能にする。 ```shell apt-get update && apt-get install -y vim vim GemFile # 上のコマンドで、「gem 'yaml_db'」を適当な位置に追加する bundle install ``` Loadを行う。 ```shell rake db:load RAILS_ENV=production ``` しかし、`ERROR: invalid byte sequence for encoding "UTF8": 0x89`と表示され、文字コード周りの闇に踏み込みそうになったため、諦め。