mysql - Rails - 将表存档到另一个数据库

标签 mysql ruby-on-rails database

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

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

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

示例:user_activities 有 30 000 条记录。我将表标记为已存档并按 ID 设置截止时间 - 最后 2000 条记录。我希望得到以下结果:

  1. user_activities 仅包含最新的 2000 条记录
  2. 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/

相关文章:

python - 如果单元格包含多个字符串,则放入 Pandas 中的新单元格

mysql - 获得结果的更好方法

jquery - Rails session 正在重置

ruby-on-rails - Heroku 找不到 SecureRandom

ruby-on-rails - 如何在部分中产生一个 block

sql-server - 无法远程连接到 SQL Server 实例

iphone - iphone 的 mac 地址是静态的吗?寻找一种方法来识别哪个用户在线

php - 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

mysql - CURRENT_TIMESTAMP 以毫秒为单位

php - 如何用SQL连接两个表?