Database Rails在不迁移的情况下创建表

Database Rails在不迁移的情况下创建表,database,ruby-on-rails-3,heroku,migration,rake-task,Database,Ruby On Rails 3,Heroku,Migration,Rake Task,我有一个rails应用程序,它有一个特定的表,其中的数据甚至结构都是在rails和ruby之外动态生成的。根据设计,这是一个特殊的表,其中的结构与其他活动记录和关系是自包含的。研究它的模型也是原子的。同样,这一切都是有目的的。我不希望该表有特定的结构,这意味着每次初始化该表时,列名和列数都可以更改。如果表结构发生更改,我可以管理模型类的更改 我的问题是rails迁移过程似乎遇到了阻碍,我不想在迁移和回滚之间来回移动,只是为了得到这个单表重置的状态 我所寻找的行为实际上是每次我“生成”这个表的数据

我有一个rails应用程序,它有一个特定的表,其中的数据甚至结构都是在rails和ruby之外动态生成的。根据设计,这是一个特殊的表,其中的结构与其他活动记录和关系是自包含的。研究它的模型也是原子的。同样,这一切都是有目的的。我不希望该表有特定的结构,这意味着每次初始化该表时,列名和列数都可以更改。如果表结构发生更改,我可以管理模型类的更改

我的问题是rails迁移过程似乎遇到了阻碍,我不想在迁移和回滚之间来回移动,只是为了得到这个单表重置的状态

我所寻找的行为实际上是每次我“生成”这个表的数据时,我想要删除可能已经存在的表(在所有环境中:生产、开发和测试)

是否有明确的方法绕过迁移过程?或者创建一个独立于应用程序中其他迁移顺序的特殊迁移

整个数据库不是一次性的,但这一个表是一次性的

关于我如何实现这种行为的想法


Rails 3、PostgreSQL数据库、git版本控制、heroku主机

我认为简单的答案是“不要使用迁移”——它们旨在帮助您相对优雅地扩展静态数据库模式。除了生成/执行数据库的数据定义语言(DDL)之外,迁移还可以做很多事情——它知道如何前进和后退,通过源代码(
schema.rb
)和数据(在
schema\u migrations
表中)之间的链接知道如何确定需要运行哪些迁移,等等。您所需要的只是执行DDL的部分(毕竟,这只是一种SQL)


至少有一部分是这样的。您可能需要的所有基础结构似乎都已存在。

您可以将其设置为一个包含用于构造表的SQL/rails命令的rake任务(听起来像是您正在使用的任务),类似于使用rake db:seed所做的工作,我想这真的很简单。谢谢。这很有效。我只是把所有的代码放到一个rake任务中,我可以根据需要随时更改它。谢谢