# 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`と表示され、文字コード周りの闇に踏み込みそうになったため、諦め。