1

那么在 Rails 2 的 Sqlite 数据库中创建新表的最佳方法是什么。我使用 rake db:migrate 命令创建了数据库。所以我应该编写单独的 sql 脚本来创建数据库还是以某种方式使用 rake。我不需要脚手架。

4

3 回答 3

2

尽量避免编写 CREATE/ALTER 表脚本并改用 ActiveRecord 迁移。有几个原因浮现在脑海:

  • 可移植性:让 AR 处理跨平台的风味差异要容易得多
  • 更改控制:您的迁移可以使用 VERSION= 选项管理双向更改,这在 SQL 中并不容易做到
  • 这是 Rails 的方式:遵循 Rails 约定,除非你有令人信服的理由不这样做
  • 简单性:使用迁移时不必担心 id 和 timestamp 列,如果您使用 SQL 工作,则无需记住它们
于 2008-10-14T09:03:13.020 回答
2

基本上使用迁移。

http://wiki.rubyonrails.org/rails/pages/understandingmigrationshttp://wiki.rubyonrails.org/rails/pages/UsingMigrations提供了有关如何使用迁移的一些有用帮助。我使用的一个很好的备忘单也可以在http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations上找到。

基本上,迁移使用 ruby​​ 代码为您创建数据库表。使用漂亮的 ruby​​ 代码而不是 SQL DDL 来做这件事要容易得多(至少在我看来)——它还自动为你做各种事情(比如id根据 rails 的需要向所有表中添加字段)。然后,您可以使用 rake 任务将迁移实际应用到您的数据库。迁移给您的另一个主要优势是它们是可逆的——因此您的数据库是版本化的,您可以轻松地从一个版本跳转到另一个版本。

于 2008-10-14T10:01:59.670 回答
1

如果您不使用脚手架,那么您应该使用script/generate migration为每个表创建一个迁移文件。无需使用 sql 脚本。创建一些迁移后,您可以使用 rake db:migrate 将它们应用到您的数据库中。

于 2008-10-14T07:01:58.647 回答