我最近开始在我的Rails项目中使用现有数据库,但我意识到该数据库中的所有表都已合并。
我仍然需要其中一些表,而不是这个项目。
我担心通过迁移删除它们也会将它们从我的实际数据库中删除。我可以从schema.rb手动删除它们吗?
答案 0 :(得分:3)
db/schema.rb
就像是完整数据库的蓝图。所以,不,它不可能在数据库中有表并避免在db/schema.rb
中显示它们,因为它将选择数据库的完整模式。即使您在数据库中手动添加新表(即没有迁移),它仍会反映在db/schema.rb
根据Rails指南,
请注意,运行db:migrate任务还会调用db:schema:dump task,它会将db / schema.rb文件更新为匹配结构 您的数据库。
Rails指南的另一个参考资料总结了
迁移,尽管可能很强大,但并不是权威来源 对于您的数据库架构。该角色属于db / schema.rb或 SQL文件通过检查数据库生成Active Record 。他们 不是为了编辑而设计的,它们只代表当前的状态 数据库。
答案 1 :(得分:-2)
创建一个空的迁移文件并对其进行编辑以使用drop table:
drop_table :table_name