Rails创建没有迁移的数据表

8
我有一个rails应用程序,其中有一个特定的表格,其数据甚至结构都是在rails和ruby之外动态生成的。这是设计上的,它是一个特殊的表格,其中结构与活动记录和关系完全独立。操作它的模型也是原子的,这也是设计和目的。我不想为此表格设定特定的结构,这意味着列名和列数每次初始化表格时都可能会改变。如果表格结构发生更改,我可以管理模型类的更改。
我的问题是,Rails迁移过程似乎妨碍了我,而我不想不停地在迁移和回滚之间来回跳转,只为了重置这个单一的表格状态。
我正在寻找的行为实际上是每次“生成”此表格的数据时,我都希望删除可能已经存在的表格(在所有环境中:生产、开发和测试)。
是否有明确的方法可以绕过迁移流程?或者创建一个与应用程序中其他迁移序列无关的特殊迁移?
整个数据库并非可放弃,但这个表格可以放弃。
您认为如何实现此行为?
Rails 3,PostgreSQL数据库,git版本控制,heroku托管
2个回答

2
我认为简单的答案是“不要使用迁移”-它们旨在帮助您相对优雅地扩展否则静态的数据库模式。迁移除了生成/执行数据库数据定义语言(DDL)之外,还可以做很多其他事情-它知道如何前进和后退,通过源代码(schema.rb)和数据(在schema_migrations 表中)之间的链接来确定需要运行哪些迁移等等。你只需要执行DDL部分(毕竟,它只是一种SQL语言)。
至少其中一部分在TableDefinition API中,这里是链接。所有可能需要的基础设施似乎都已经准备好了。

我猜确实是那么简单。谢谢。 - Gordon Potter

2
你可以将其设置为Rake任务(听起来像你正在使用它的方式),其中包含用于构建表格的SQL / rails命令,类似于使用完成的操作。

那个方法可行,我把所有的代码都放进了一个 Rake 任务中,这样我需要时就可以随意更改。谢谢。 - Gordon Potter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接