我们有一些表有大量记录并且不经常使用(例如 user_activities
),我们希望能够将目标表中的记录归档(我的意思是移动)到归档表中在单独的数据库中。
我的问题是:是否有已知的解决方案?
补充说明: 我想要某种会触发归档过程的 rake 任务。该过程将遍历标记为“已存档”(或其他)的表,并将过时的记录移动到单独数据库中的存档表。
示例:user_activities
有 30 000 条记录。我将表标记为已存档并按 ID 设置截止时间 - 最后 2000 条记录。我希望得到以下结果:
user_activities
仅包含最新的 2000 条记录- 28000 条过时记录已移至
my_super_cool_named_database
中的archived_user_activities
表
PS 我们使用 mysql2
适配器(如果有帮助的话)
谢谢!
最佳答案
下面显示了 dump 命令和 restore 命令,它们适用于整个数据库。
复制数据库: mysqldump -u [uname] -p[pass] [dbname] > [backupfile.sql]
使用此方法从头开始重建数据库: $ mysql -u [用户名] -p [密码] [database_to_restore] < [备份文件]
使用此方法导入现有数据库(即恢复已存在的数据库): $ mysqlimport [选项] 数据库文本文件 1
要将之前创建的 custback.sql 转储恢复到“客户”MySQL 数据库,您可以使用: $ mysqlimport -u sadmin -p pass21 客户 custback.sql
虽然如果你只想要数据库的特定部分,你可以做这样的事情......
CREATE TABLE db2.table LIKE db1.table;
INSERT INTO db2.table SELECT * FROM db1.table;
关于mysql - Rails - 将表存档到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528916/