*ブログに戻る →ここ です。
参考サイトは下記にリンクを張っています。

Rubyの学習 free229
マイグレーションン
モデル
これらはMySQLやSQLiteなどのデータベースに、
1、データーベース
2、テーブル
3、カラム
4、カラムのデータ型
をRubyからおこなおうとする仕組みである。

Rubyから各種データベースにテーブルとカラムを作成するためにマイグレーションンやモデルを使用した。

↓Rubyのプログラムを実行すると以下のように表示される。

Ruby on Rails で MySQL を連携させることが出来なかったので
SQLiteを使用することにする
尚、筆者はSQLiteの使い方をマスターしていないので出力が出来ない状況です
奮闘記としてのメモ








Friday,December,13,2013

プログラムの表示

ルビー名ではモデルと呼ばれる マイグレーションマイグレーションとはテーブルとカラム、カラムの型を作成するタスクである 文法的には「rails generate model sadatitle2 atsuname:string atsusale_data:date」 create db/migrate/20131209061413_create_sadatitles.rb(複数形に)←テーブル名カラム名データ型の設定で用いる create app/models/sadatitle.rb create test/models/sadatitle_test.rb create test/fixtures/sadatitles.yml ←テーブル名カラム名データ型の結果がわかる データベース作成はファイル(config/database.yml)を編集後、コマンドで「rake db:create」と打ち込む 作成されるファイル(sadachikasample_sqlite/db/sadachidevelopment.sqlite3)はエディタでは開けない 作成されるファイル(sadachikasample_sqlite/db/sadachitest.sqlite3) addd_columnメソッドの場合はテーブル名、追加するカラム名、カラムのデータ型の3つの引数を指定して呼び出 class AddNameToTitles < ActiveRecord::Migration def up add_column :title, :name, :string end #↑テブル↑カラム名↑データ型 def down remove_column :title, :name end end ------------------------------------------- アプリ名;sadachika データベース名;sadachi テーブル名;sada カラム名;atsu string型の「atsuname」カラムと、date型の「atsusales_date」カラムを追加する マイグレーションスクリプト (db/migrate/20131209061413_create_sadatitles.rb)←増えた さくらエディタで開く class CreateSadatitles < ActiveRecord::Migration(複数形に) def change create_table :sadatitles do |t| #コメントテスト、ここはテーブル名 #このスペースにカラムと型を追加します t.timestamps end end end class CreateSadatitles < ActiveRecord::Migration(複数形に) def change create_table :sadatitles do |t| #ここはテーブル名 t.string :atsuname #←追加した t.date :atsusales_date #←追加した #↑カラム名 #↑データの型 t.timestamps end end end コマンドで実行する C:\SadaData\rails\sadachikasample_sqlite>rake db:migrate == CreateSadatitles: migrating =============================== -- create_table(:sadatitles) -> 0.0156s == CreateSadatitles: migrated (0.0156s) ====================== == CreateSadatitle2s: migrating ============================== -- create_table(:sadatitle2s) -> 0.0000s == CreateSadatitle2s: migrated (0.0000s)====================== 本来MySQL用のテキストなのですはSQLiteでしているので確認が出来ません 「sadatitles」自分で作成したテーブル名 「schema_migrations」どのバージョンまで実行済みかを記録(20131209061413_create_sadatitles.rb)ここの日付で確認する という2つのテーブルが作成されるらしい SQLiteで確認したいですね、今のところ出力方法が分かりません、でも値は格納されてるみたいだよ テーブル 「name」 カラム 「sales_date」カラム 「id」 カラム 自動的に作成テーブルの主キー(プライマリーキー) 「created_at」カラム レコードが作成された日時 「updated_at」カラム レコードが変更された日時 テーブル 「version」 カラム 一番最後に実行されたマイグレーションスクリプトの値 現在のバージョンを確認する C:\SadaData\rails\sadachikasample_sqlite>rake db:version Current version: 20131213021238 (このファイルだった20131213021238_create_sadatitle2s.rb) 次回の実行時にはこの時間移行が実行される ----------------------------------------- テーブルを削除するメソッドを学ぶのでとりあえず新しいモデルを作成します。 モデル、テーブルを作成する C:\SadaData\rails\sadachikasample_sqlite>rails generate model sadatitle3 atsuname:string atsusale_data:date invoke active_record create db/migrate/20131213052335_create_sadatitle3s.rb(複数形に) create app/models/sadatitle3.rb invoke test_unit create test/models/sadatitle3_test.rb create test/fixtures/sadatitle3s.yml(複数形に)カラムとデータを指定すると記載が全面的に変わる モデルを作成すると自動的にテーブルを作成するためのマイグレーションスクリプトが作成される 実際に作成されたマイグレーションスクリプトからテーブルとカラムを作成します。 C:\SadaData\rails\sadachikasample_sqlite>rake db:migrate == CreateSadatitle3s: migrating =============================== -- create_table(:sadatitle3s) -> 0.0156s == CreateSadatitle3s: migrated (0.0156s) ====================== 現在のバージョンを確認する C:\SadaData\rails\sadachikasample_sqlite>rake db:version Current version: 20131213052335 (このファイルだった20131213052335_create_sadatitle3s.rb) 次回の実行時にはこの時間移行が実行される 変更を加える rails generate migration クラス名 rails generate migration AddColumnSadatitles クラス名は任意ですが、通常は「行なう処理+テーブル名」のようになります。例えば「AddColumnTitles」です。 (sadachikasample_sqlite/migrate) 20131213020202_create_sadatitles.rb 20131213021238_create_sadatitle2s.rb 20131213052335_create_sadatitle3s.rb 20131213054637_add_column_sadatitles.rb C:\SadaData\rails\sadachikasample_sqlite>rails generate migration AddColumnSadatitles invoke active_record create db/migrate/20131213054637_add_column_sadatitles.rb ←これが作成された class AddColumnSadatitles < ActiveRecord::Migration def change end end class AddColumnSadatitles < ActiveRecord::Migration def up add_column :sadatitles, :a2place, :string end #↑テーブル名_↑カラム名_↑データ型 def down remove_column :sadatitles, :a2place, :string end end カラムの追加と削除の場合 rails generate migration クラス名 カラム名:データ型( カラム名:データ型) クラス名は「AddXXXToYYY」または「RemoveXXXFromYYY」とします。 「XXX」には追加又は削除するカラム名を指定 「YYY」にはテーブル名を指定します。違う文字列でもいい 「AddXXXToSadatitles」 rails generate migration AddXXXToYYY カラム名:データ型( カラム名:データ型) ↓テーブル名↓カラム名↓データ rails generate migration AddDetailsToSadatitles atsuprice:integer atsuauthor:string ↑カラム名 ↑データ コマンド C:\SadaData\rails\sadachikasample_sqlite>rails generate migration AddDetailsToSadatitles atsuprice:integer atsuauthor:string invoke active_record create db/migrate/20131213062617_add_details_to_sadatitles.rb (20131213062617_add_details_to_sadatitles.rb)さくらエディタで開いてみる 自動で加筆されている class AddDetailsToSadatitles < ActiveRecord::Migration #←テーブル名 def change add_column :sadatitles, :atsuprice, :integer add_column :sadatitles, :atsuauthor, :string end end #↑カラム名__↑データ型 次に先程追加したstring型の「atsuauthor」カラムを削除してみます。 「RemoveXXXFromYYY」 「XXX」には追加又は削除するカラム名を指定 「YYY」にはテーブル名を指定します。違う文字列でもいい rails generate migration RemoveAtsuauthorFromSadatitles atsuauthor:string #↑削除カラム_↑テーブル名↑カラム名↑データ型 コマンド C:\SadaData\rails\sadachikasample_sqlite>rails generate migration RemoveAtsuauthorFromSadatitles atsuauthor:string invoke active_record create db/migrate/20131213064400_remove_atsuauthor_from_sadatitles.rb (20131213064400_remove_atsuauthor_from_sadatitles.rb)さくらエディタで開いてみる 自動で加筆されている #↓削除カラム_↓テーブル名 class RemoveAtsuauthorFromSadatitles < ActiveRecord::Migration def change remove_column :sadatitles, :atsuauthor, :string end end #↑テーブル名↑カラム名__↑データ型 作成したマイグレーションスクリプトを実行する前に削除する方法 rails destroy migration クラス名 rails destroy migration AddColumnSadatitles コマンド C:\SadaData\rails\sadachikasample_sqlite>rails destroy migration AddColumnSadatitles invoke active_record remove db/migrate/20131213054637_add_column_sadatitles.rb バージョンを確認 C:\SadaData\rails\sadachikasample_sqlite>rake db:version Current version: 20131213052335 実行されていないマイグレーションスクリプトは2つ 実際にテーブルとカラムを作成する コマンド C:\SadaData\rails\sadachikasample_sqlite>rake db:migrate == AddDetailsToSadatitles: migrating =============================== -- add_column(:sadatitles, :atsuprice, :integer) -> 0.0156s -- add_column(:sadatitles, :atsuauthor, :string) -> 0.0000s == AddDetailsToSadatitles: migrated (0.0156s) ======================= == RemoveAtsuauthorFromSadatitles: migrating ======================== -- remove_column(:sadatitles, :atsuauthor, :string) -> 0.0000s == RemoveAtsuauthorFromSadatitles: migrated (0.0156s) =============== バージョンを確認 C:\SadaData\rails\sadachikasample_sqlite>rake db:version Current version: 20131213064400 すべて実行された 20131213020202_create_sadatitles.rb 20131213021238_create_sadatitle2s.rb 20131213052335_create_sadatitle3s.rb 20131213062617_add_details_to_sadatitles.rb 20131213064400_remove_atsuauthor_from_sadatitles.rb マイグレーションスクリプトを実行した後削除できますか? rails destroy migration クラス名 rails destroy migration CreateSadatitle3s (20131213052335_create_sadatitle3s.rb) class CreateSadatitle3s < ActiveRecord::Migration def change create_table :sadatitle3s do |t| t.string :atsuname t.date :atsusale_data t.timestamps end end end コマンド C:\SadaData\rails\sadachikasample_sqlite>rails destroy migration CreateSadatitle3s invoke active_record remove db/migrate/20131213052335_create_sadatitle3s.rb 削除されたね。 ファイルも消えたけどどうなのだろうか? なぞ テーブルを作成してみる C:\SadaData\rails\sadachikasample_sqlite>rails generate migration AddColumnSadatitle2s (20131213080620_add_column_sadatitle2s.rb)が作成された


*↓ 参考にしたサイトは下記
こちら です。

これは赤色の文字例です。

これは青色の文字例です。