forked from ruby-china/homeland
-
Notifications
You must be signed in to change notification settings - Fork 4
data migrations after updating
Lan edited this page Oct 15, 2020
·
10 revisions
插件主要包括
- https://github.com/homeland-plugins/wiki
- https://github.com/homeland-plugins/site
- https://github.com/homeland-plugins/jobs
数据迁移之前需要先进行插件的安装,已引入缺失的migrations文件。
按如下步骤执行
- 先让网站跑起来,申请管理员权限的账户,并已此账户登录。
- 进入管理员页面
admin/plugins
,进行插件安装,完整引入上述三个插件的zip文件。(应该每安装一个插件都需要重启服务)。 - 插件安装完成之后才能进行数据迁移。在此之前先把当前的数据库删除(后面会再次创建)。
DROP DATABASE homeland
psql> CREATE DATABASE tmp_testerhome;
把数据导入临时数据库
cat forlantest.sql| psql tmp_testerhome
> 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;
只需要导出数据不需要schema,同时也不需要导出migration,因为migration的数据需要通过db:migrate来生成
pg_dump --data-only -d tmp_testerhome -T schema_migrations -T ar_internal_metadata > new_database
> bin/rails db:create
> bin/rails db:migrate
cat new_database | psql homeland
> bin/rails c
> require "./db/migrate/20200721022652_migrate_profile_data.rb"
> MigrateProfileData.new.up
数据迁移完成之后跑一下 bin/rails reindex重新创建索引。