0

我有一个带有名称建筑物的表,我想删除它,因为我忘记了一个列。在 cmd 中,我转到文件夹并键入“sqlite3”,然后键入“.tables”,没有任何显示。为什么?我能做什么?

4

2 回答 2

1

删除数据库表的正确方法是为其编写迁移。

迁移是一种以结构化和有组织的方式更改数据库的便捷方式。您可以手动编辑 SQL 片段,但随后您将负责告诉其他开发人员他们需要去运行它们。您还必须跟踪下次部署时需要对生产机器运行哪些更改。

Active Record 跟踪哪些迁移已经运行,所以你所要做的就是更新你的源并运行 rake db:migrate。Active Record 将确定应该运行哪些迁移。它还将更新您的 db/schema.rb 文件以匹配您的数据库的结构。

资料来源: http: //guides.rubyonrails.org/migrations.html

于 2013-02-13T16:19:14.550 回答
0

您应该避免直接操作数据库,而是使用迁移。如果您忘记添加列,那么您应该创建一个新的迁移,add_column用于将该列添加到表中。

或者,如果先前的迁移是创建缺少列的表的迁移,并且您尚未分发此迁移,您可以这样做rake db:rollback,编辑迁移并rake db:migrate再次运行。

运行 sqlite 命令时缺少表很可能是因为您忘记指定要加载的 sqlite 文件:sqlite3 <db_name>

于 2013-02-13T16:21:48.667 回答