ruby-on-rails - 为现有数据库记录创建版本
问题描述
我的 Ruby on Rails 应用程序的数据库中有一堆表,对于每个表,多个利益相关者都参与了更改。越来越难知道谁做了什么更改,所以我决定添加paper_trail gem并为每个更改创建一个版本。
问题是数据库已经在每个表中包含大量数据,我不想删除它们。有没有办法可以创建一个object_change
版本,将现有数据视为第一个版本,将事件类型视为create
.
考虑用户表的模式
t.citext "email"
t.string "first_name"
t.string "last_name"
t.string "mobile"
样本记录
#<User id: 1, email: "test@example.com", first_name: "Example", last_name: "User", mobile: "1234567890", created_at: "2020-05-30 11:59:32", updated_at: "2020-05-30 11:59:32">
运行时的预期结果User.find(1).versions.last.changeset
=> {"id"=>[nil, 1], "email"=>[nil, "test@example.com"], "first_name"=>[nil, "Example"], "last_name"=>[nil, "User"], "mobile"=>[nil, "1234567890"], "created_at"=>[nil, Sat, 30 May 2020 11:59:32 UTC +00:00], "updated_at"=>[nil, Sat, 30 May 2020 11:59:32 UTC +00:00]}
解决方案
推荐阅读
- mysql - mysql获取具有contition的多表计数
- php - 如何将 API 请求中的数据数组排列到 HTML SELECT OPTION LIST 中?
- ios - 在图像上快速绘制图像资产
- pandas - Sqlalchemy 错误:obj 必须是类型的实例或子类型
- fastify - 如何同步加载 fastify-env 环境?
- c++ - 无法将 Qml 信号连接到 C++ 插槽
- java - 如何在 Android Java 中从文件中读取变量
- python - 在 Python 中调试:向您显示类实例实时更新的 IDE
- c# - 如何在 zip 存档中找到某些文件的压缩位以进行进一步处理?
- unity3d - 哪个游戏对象需要触发检查,哪个可以使用 OnTriggerEnter() 函数?