Skip to content

data migrations after updating

Lan edited this page Sep 30, 2020 · 10 revisions

数据迁移

1. 创建一个临时的数据库

psql> CREATE DATABASE tmp_testerhome;

把数据导入临时数据库

cat forlantest.sql| psql tmp_testerhome

2. 调整临时数据库中的一些字段

> psql -d tmp_testerhome

tmp_testerhome=# ALTER TABLE topics RENAME excellent TO grade;
tmp_testerhome=# DROP TABLE  IF EXISTS posts;
tmp_testerhome=# ALTER TABLE users DROP COLUMN verified;

3. 把临时数据库中的数据导出

只需要导出数据不需要schema,同时也不需要导出migration,因为migration的数据需要通过db:migrate来生成

pg_dump --data-only -d tmp_testerhome  -T schema_migrations > new_database

4. 创建真正的数据库

> bin/rails db:create
> bin/rails db:migrate

5. 把真实数据导入到新的数据库中

cat new_database | psql testerhome-dev

6. 迁移旧数据

> bin/rails c

> require "./db/migrate/20200721022652_migrate_profile_data.rb"
> MigrateProfileData.new.up

插件安装

插件主要包括

需要自己下载安装包,添加到后台。

Clone this wiki locally