0

Railsの本を読むときは、新しいデータベースを作成するたびに、常に。に従ってdb:migrateください。

rails generate scaffold school
rake db:migrate

コンソールビューでは、最初の行で、Railsがいくつかのファイルを作成していることがわかります。問題ありません。しかし、2行目では、Railsは実際には何も変更されていないことがわかります。Railsがほぼ作成するいくつかのファイルを表示しましたが、変更もありません。

では、2行目の目的を教えてください。

ありがとう :)

4

2 に答える 2

3

レーキは変更をデータベースに移行します。これは、以前に生成された足場モデルに一致するようにデータベース スキーマを実際に変更するものです。

それがなければ、オブジェクトを書き込むテーブルがありません。または、機種変更の場合、表がお客様の機種と異なり、エラーとなる場合があります。

モデル (またはスキャフォールディング モデル) を生成すると、移行ファイルが db/migration ディレクトリに作成されます。これは純粋なテキスト ファイルであり、必要に応じて手動で作成できます。これは、データベースに関する Rails での反復開発のためのツールです。移行のたびに、システムにいくつかの変更が加えられます。データベースを実行rake db:migrateすると、指定された移行によって更新されます。これは、1 人のプログラマがリポジトリからコードをチェックアウトし、自分の開発データベースで移行を実行できる分散開発の場合に便利なツールです。

于 2012-06-24T19:09:52.997 に答える
1

db:migrateは、レールに新しい変更でデータベースを更新するように指示するコマンドです。このように考えてください

rails generate scaffoldRailsがモデル、コントローラーなどのファイルを生成すると言うと、データベースを更新するためのsqlスクリプトを含むファイルがdb/migrateの下に作成されます。

例: を実行するrails generate scaffold User name:stringと、データベース内に users という名前のテーブルが必要になり、列が「name」になります。その SQL スクリプトは、db/migrate フォルダーの下に生成されます。

、コマンドを使用してdb:migrate、レールに新しいSQLスクリプトをデータベースに移行するように指示しています。上記の場合、「users」テーブルが作成されます

Rails アプリケーションのルートからを実行するrake -Tと、すべての rake タスクが表示されます。

HTH :)

于 2012-06-24T20:00:52.330 に答える