Ruby on Railsのmigrateについての困りごと

このQ&Aのポイント
  • Ruby on Rails初心者の方がmodelの作成と削除を行った際にエラーが表示されず、コマンドが入力可能な状態になってしまう問題について説明している質問です。
  • modelを作成した後、エラーが表示されずにコマンドが入力可能な状態になる原因について、回答を求めています。
  • Ruby on Railsのmigrateでmodelを作成して削除した後にエラーが表示されず、コマンドが入力可能になる問題について質問しています。
回答を見る
  • ベストアンサー

Ruby on Railsのmigrateについてです!

初めまして、Ruby on Rails初心者の者です。 現在modelを5つ作成してあります。 そこで新たにmodel(6)を作成(コマンドプロンプトにて)したのですが、記述ミスがあったので今作成されたmodel(6)を削除しました。(データーベースからも) で、また同じ名前で作成したのですがエラーが何も表示されず、コマンドが入力できる状態になってしまいます。 ruby script/generate model モデル名  ↓正常 rake db:migrate  ↓何も表示されない コマンドが入力可能状態になる 何が原因なのでしょうか? 調べたのですが、私には分からずとても困っています 分かる方居ましたら、回答お願い致します。

  • Ruby
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
noname#149362
noname#149362
回答No.2

rake db:migrate:reset を実行しても、DB 以外に支障は出ないはずです。 どうしても心配でしたら、現在作業中の project のバックアップを取っておいて下さい。(SQLite3 以外の DB をご利用でしたら、DB の中身も。) Git や Subversion などをご利用なら適切な名前 (タグ) をつけて commit するだけですが、利用していなければ zip 圧縮だけでも充分です。

その他の回答 (1)

noname#149362
noname#149362
回答No.1

今まで DB に入力したデータが初期化されてもよければ、 rake db:migrate:reset で思い通りの結果になると思います。初期化されるのがまずければ、 rake -T で表示されるもののうち「rake db:migrate」で始まる5つやその前後を見て頑張って下さい。

siki_nero
質問者

補足

回答ありがとうございます。 厚かましいのですが、続けて質問失礼します。 rake db:migrate:reset のコマンドなのですが、DB に入力したデータ以外に支障はでないでしょうか?

関連するQ&A

  • ruby on rails rake migrateについて

    rails初心者です。 今「ライドオンrails」を見て、勉強しているのですが、 34ページのところの $ rake migrate のところでエラーが出てしまいます。エラー内容は下記に示します。 環境:fedora core 5 mysql, ruby, gem, rails:yumコマンドにインストール(最新) この環境で 次のエラーが出てしまいます。 $ rake migrate (in /home/tada/tutorial/recipe) rake aborted! Mysql::Error: Lost connection to MySQL server during query: SET NAMES 'utf8' わかる方がいらっしゃたら教えてください。

  • Ruby on Rails について

    Ruby on Railsでアプリケーションを作ります。 バージョンは:InstantRails-2.0-win 1、データベース表の作成: データベース名:myapp   テーブル名:peoples データベースを作成したら、MySQLを再起動します。 2、新規アプリケーションの作成: アプリケーション名:myapp Instant RailsウィンドウのIボタン⇒Rails Applications⇒Manage Rails Applicationsをクリックします。 Rails ApplicationsダイアログボックスのCreate New Rails App・・をクリックします。 コマンドプロンプト画面が表示されます。 rails myapp を入力します。 コマンドプロンプトのプロンプトが入力状態になって、コマンドプロンプトを閉じます。 Rails ApplicationsダイアログボックスのRefresh Listボタンをクリックしたら、myappアプリケーション名が追加されます。 3、アプリケーション・モデルの作成: InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ config ⇒ datebase.yml ファイルを開きます。 ↓に書き換えます。 development: adapter: mysql database: myapp timeout: 5000 username: root host: localhost   Instant RailsウィンドウのIボタン ⇒ Rails Applications ⇒ Open Ruby Console Windowをクリックします。 コマンドプロンプトが開きます。 cd myapp ruby script/generate model people を入力します。 4、コントローラの作成: コマンドプロンプトを開きます。 cd myapp ruby script/generate controller people を入力します。 コマンドプロンプトを閉じます。 InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ app ⇒ controllers ⇒ people_controller.rb ファイルを開きます。 class PeopleController<Application Controller scaffold :people ←←追加した行です。 end 5、新しいアプリケーションを起動 Rails ApplicationsダイアログボックスのRails Applications 欄の myappの所をチェックし、Start with Mongrelボタンをクリックします。 コマンドプロンプト画面が起動し、ポート番号が表示されます。 Webブラウザを起動し、アドレス欄に 一つは: 「http://localhost:people/list」を入力し、Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp   一つは: http://localhost:3000/people Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#index undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp どこの手順が違ってるのが解らなくて、 Errorの解決方法ですごく困ってます。 どうかご指導をお願いいたします。 もう一つはErrorメッセージの3行目は C:/taiyo/INSTAN~1.0-W/rails_apps/myappですけど、 InstantRails-2.0-winフォルダのはずですけど、 INSTAN~1.0-Wフォルダになった原因がよくわからないです。 すごく困ってます。 ご指導お願いいたします。

  • ruby on railsのエラーについて

    今、「ruby on rails」の勉強をしています。で、エラーについて質問なんですが、「ruby script/generate scaffold Article Admin」とコマンドプロンプト上で入力したのですが参考サイトのようにできません。 私の場合は、「対象のコンピュータによって拒否されたため、接続できませんでした。 - connect(2)」と最後にでて失敗します。 どうしたらうまく実行することができるのでしょうか?? 参考サイト(サイト上部): http://www008.upp.so-net.ne.jp/letitbe/rails003.htm

  • Railsのエラー

    Railsのエラーについての質問です。 コマンドプロントでデータベースを作成しようとしたところ、よくわからないエラーが発生してしまいました(><) >rake db:migrate と入力すると、 C:.../InstatntRails/ruby/bin/rake.bat:25:[BUG]Segmentation fault ruby 1.8.4(2005-12-24)[i386-mswin32] This application has requseted the Runtime to terminate it in an usual way. Please contact the application's support team for more infomation. と表示されてしまいます。。。 「ruby.bat」というファイルの25行目にバグがある? と思いファイルを確認してみました。 25行目は、 load 'rake' だけなのです! ちなみにMySQL5.0.22、ruby1.8.4,rails 1.1.0を利用しています。 バージョンが悪いのでしょうか? 初心者でしてよくわからい状況です。。。 詳しいかたがいましたら、ぜひアドバイスよろしくお願いします!!

  • Railsで作ったものにdispatch.cgiがない

    Ruby on Railsで作成したものをApacheで動かそうとしたのですが、 「public/dispatch.cgi」などのファイルが存在しませんでした。 「.htaccess」も作成されていないようです。 InstantRails(Rails 2.0.2)で作成したものには上記ファイルは存在します。 何か必要なものがあるのでしょうか? 環境 -Windows XP + coLinux -Debian 5.0.2 -ruby 1.8.7 -rails 2.3.3 railsはapt-getとgemと両方入れています。 (どこかのサイトを参考にしたのですが、失念してしまいました・・・。) 入力 $ cd /var/www/rails $ rails myapp $ cd myapp $ script/generate scaffold note line:string $ rake db:migrate ls -a publicの結果 . 404.html 500.html images javascripts stylesheets .. 422.html favicon.ico index.html robots.txt

  • Ruby on Railsについて

    Ruby on RailsでWebアプリケーションを作成します。 下記の順でやりました。 1、データベース表を作成。 2、新規アプリケーションの作成。 3、作成したアプリケーションがどのデータベースを使うのかを教える。 4、モデルの作成。 5、コントローラの作成。 6、新しいアプリケーションを起動。 ここでコマンドプロンプト画面内に表示されるポート番号を確認し、 Webブラウザを起動し、 アドレス欄に[http://localhost:ポート番号/アドレスブック/アドレスブックのリスト] を記入しました。 エラーが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class

  • Ruby on Rails ; model validationが動作しない等

    昨日からRoRで開発している初心者です。 移行するとアプリケーションが動かなくなりました。 開発機でruby on rails + lighttpd + fastcgi にて rails xxx ruby script/generate scaffold yyy ・・・ と開発を進めていました。 そして同様構成の本番機に移行したところ、validateが動かないなど 様々な不具合がでています。 移行方法  本番機でrailsコマンドを実行  xxx以下のファイルを全てコピー ファイルをコピーするだけだと動作しないのでしょうか? 不具合:  1:時々 unknown action がでる  2:varidate(model/...)が動作しない 対処? 1:script/generateコマンドの発行が必要? ただしい移行方法をどなたか教えていただけませんか?

  • ruby on railsのmigrateでカラム名の変更ができません

    ruby on railsにて migrateでDBのカラム名を変更したいのですが、 エラーになってしまいます。 -エラーコード---------------------- rake aborted! uninitialized constant CreateArticles ----------------------------------- ★「datetime」カラム⇒「updated_at」カラムにしたい class RenameColumnArticles < ActiveRecord::Migration def self.up rename_column(:articles, :datetime, :updated_at) end def self.down rename_column(:articles, :updated_at, :datetime) end end よろしくお願いします。

  • Ruby on Railsでデータベースに接続できない。

    Ruby on Railsでデータベースに接続できない。 『RailsによるアジャイルWebアプリケーション開発(第3版)』 http://www.amazon.co.jp/Rails%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-Sam-Ruby/dp/4274067858/ref=sr_1_1?ie=UTF8&s=books&qid=1279209371&sr=8-1 という本でRuby on Railsの勉強をしています。現在、「第10章チェックアウト」の136ページあたりで行き詰っています。 ActiveRecord::AssociationTypeMismatch in StoreController#save_orderのメッセージが表示されていますが、どうやらデータベースに接続できていないようです。 configのdatabase.yml等を色々試行錯誤してみたり、色々ググってみたりしましたが、解決できませんでした。 どうやったらデータベースに接続できるのでしょうか。恐らくInstantRails-2.0に予め入っているMySQLやApacheと別々に入れたMySQLやApacheと競合しているからでしょうか。InstantRails-2.0の入っているMySQLやApacheは停止しています。 また、別々に入れたMySQLの方にはマイグレーション(?)で問題なくデータベースやテーブルが作成されています。なのにデータベースに接続できていないようです。 もう一つ、Ruby on Railsについて文字コードはcontrollers,helpers,models,views等に入っているファイルは全てutf-8にしなければならないでしょうか。何かWindowsでRuby on railsを開発するとコマンドプロンプトの関係でShift-JISに依存しているような気がします。

    • ベストアンサー
    • Ruby
  • ruby on railsのscaffoldで配列を定義するには

    ruby on railsのscaffoldで配列を定義するには rails2.3での質問です。 通常、scaffoldで >ruby script/generate migration TestData name:string id:integer のようにデータ構造を指定すると思うのですが、この時に配列を定義するには どうしたら良いのでしょうか? 通常の(C言語のような)配列でもハッシュでも構いません。 よろしくお願いいたします。

    • ベストアンサー
    • Ruby

専門家に質問してみよう