4

我们有一些具有大量记录且不经常使用的表(例如user_activities),我们希望能够将记录从目标表归档(我的意思是移动)到单独数据库中的归档表中。

我的问题是:是否有已知的解决方案?

附加说明: 我想要某种会触发归档过程的 rake 任务。该过程将遍历标记为“已归档”(或其他)的表,并将过时的记录移动到单独数据库中的归档表中。

示例user_activities有 30 000 条记录。我将表标记为已存档并按 id 设置截止 - 最后 2000 条记录。我期待以下结果:

  1. user_activities仅包含最新的 2000 条记录
  2. 28 000 条过期记录已移至archived_user_activities表中my_super_cool_named_database

PS我们使用mysql2适配器(如果有帮助)

谢谢!

4

1 回答 1

0

我在下面展示了可用于整个数据库的转储命令和恢复命令。

复制数据库:mysqldump -u [uname] -p[pass] [dbname] > [backupfile.sql]

使用此方法从头开始重建数据库: $ mysql -u [username] -p [password] [database_to_restore] < [backupfile]

使用此方法导入现有数据库(即恢复已存在的数据库): $ mysqlimport [options] database textfile1

要将您之前创建的 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;
于 2013-11-23T19:26:09.643 回答