テーブルの作成
広告
scaffoldジェネレータによって作成されたマイグレーション定義ファイルを使ってテーブルを作成します。マイグレーション定義ファイルは次の箇所に作成せれています。
db/migrate/20100509135043_create_infomations.rb
このファイルをテキストエディタで開いてみます。
class CreateInfomations < ActiveRecord::Migration
def self.up
create_table :infomations do |t|
t.integer :id
t.string :name
t.timestamps
end
end
def self.down
drop_table :infomations
end
end
マイグレーション定義ファイルについてはまた別のページで詳しく記述方法などは確認しますが、データベースのテーブルを定義したりカラムを追加したりといったことをRailsの記述方法で記載することができます。対応しているデータベースであればデータベースの種類に関係無く共通して記述できるなどのメリットがあります。
マイグレーションを実行するにはコマンドプロンプトから次のように実行します。
rake db:migrate
では実行します。
上記のように表示されればマイグレーションは成功です。事前に「config¥database.yml」ファイルで設定したデータベースにテーブルが作成されます。
Windowsでエラーが表示される場合
WindowsでMySQLを利用している場合、次のようなエラーが出る場合があります。
(in D:/code/rails/customer) rake aborted! Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB (See full trace by running task with --trace)
その場合、下記のURLなどからlibmySQL.dllをダウンロードして「(Rubyをインストールしたディレクトリ)¥bin」ディレクトリに入れて下さい。
http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
私の場合はこれで解決しました。(参考にしたURL)。
( Written by T.buzz.Ikura+ )
Facebook Page