我想要一个迁移来创建一个现有的表的克隆,只需后缀名称,包括原始表中的所有索引.
所以有一个“快照”表,我想创建“snapshots_temp”作为表的精确副本(而不是数据,只是表模式,但包括索引).
我可以将该模块复制并粘贴到schema.rb文件中,并手动重命名它.
但是,如果来自schema.rb的定义仍然准确,我不确定此迁移是否适用.另一个开发人员可能已经更改了表,我不想更新我的迁移脚本.
那么在运行时如何获取表的架构呢?基本上,’rake schema:dump’如何反转工程表,以便我可以在我的迁移中做同样的事情? (但更改表名).
解决方法
尝试使用纯sql.这会做你想要的:
CREATE TABLE new_tbl LIKE orig_tbl;