【发布时间】:2010-09-17 01:01:56
【问题描述】:
那么在 Rails 2 的 Sqlite 数据库中创建新表的最佳方法是什么。我使用 rake db:migrate 命令创建了数据库。所以我应该编写单独的 sql 脚本来创建数据库还是以某种方式使用 rake。我不需要脚手架。
【问题讨论】:
标签: ruby-on-rails sqlite rake
那么在 Rails 2 的 Sqlite 数据库中创建新表的最佳方法是什么。我使用 rake db:migrate 命令创建了数据库。所以我应该编写单独的 sql 脚本来创建数据库还是以某种方式使用 rake。我不需要脚手架。
【问题讨论】:
标签: ruby-on-rails sqlite rake
基本上使用迁移。
http://wiki.rubyonrails.org/rails/pages/understandingmigrations 和 http://wiki.rubyonrails.org/rails/pages/UsingMigrations 提供了有关如何使用迁移的一些有用帮助。 http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations 也提供了我使用的一个很好的备忘单。
基本上,迁移使用 ruby 代码为您创建数据库表。使用漂亮的 ruby 代码而不是 SQL DDL 来做这件事要容易得多(至少在我看来)——它还自动为你做各种事情(比如根据 rails 的需要将id 字段添加到你的所有表中)。然后,您可以使用 rake 任务将迁移实际应用到您的数据库。迁移给您带来的另一个主要优势是它们是可逆的 - 因此您的数据库是版本化的,您可以轻松地从一个版本跳转到另一个版本。
【讨论】:
尽量避免编写 CREATE/ALTER 表脚本并改用 ActiveRecord 迁移。我想到了几个原因:
【讨论】:
如果您不使用脚手架,那么您应该使用script/generate migration 为每个表创建一个迁移文件。无需使用 sql 脚本。创建一些迁移后,您可以使用 rake db:migrate 将它们应用到您的数据库。
【讨论】: