1

Ubuntu 12 マシンで ruby​​ on rails プロジェクトを実行したいです。コマンドを実行しbundle install た後、次のコマンドを使用しました

   rake db:drop db:setup 

それが示している

-- create_table("art_clas", {:force=>true})
   -> 0.3222s
-- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true})
   -> 0.4328s
.....................................
.....................................

コマンドを使用し$ rake db:setup ている間、既存のデータベースが表示されます

franche_development already exists
franche_test already exists
 -- create_table("art_clas", {:force=>true})
       -> 0.3222s
    -- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true})
       -> 0.4328s
    .....................................

後でプロジェクトを実行すると、データベース テーブルから値が表示されません (空白が表示されます)。その後、次のように入力してデータベースを表示しました。しかし、この操作では Rails プロジェクトに既存のデータベースが表示されません

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.23 sec)

実行しrake db:dropても何も返されない

 $ rake db:drop
 $

表示しているプロジェクトを実行するとき

Mysql2::Error: Table 'franche_development.arts' doesn't exist: SELECT `arts`.* FROM `arts`  WHERE `arts`.`active` = 1 .....

Rails プロジェクトの既存のデータベースとテーブルをセットアップして使用するにはどうすればよいですか。

コードエラーまたはデータベースのセットアップが原因ですか??

4

1 に答える 1

1

そこで、mySQL で作成した既存のデータベースを ruby​​ で使用したいとします。config/database.yml で構成をセットアップする必要があります。

ここに例があります

開発:
アダプター: mysql2
エンコーディング: utf8
データベース: my_db_name
ユーザー名: root
パスワード: my_password
ホスト: 127.0.0.1
ポート: 3306

また、mysql gem をインストールする必要があります。また、mysql gem に関する Gemfile を更新します。

デフォルトでは、Rails データベースは mySQL ではなく sqlite でセットアップされ、 RAILS_ROOT/db/development.sqlite3 に保存されます。つまり、レールでテーブルを作成した場合、mysql を使用してテーブルを表示することはできません。テーブルとやり取りするには、sqlite3 を使用する必要があります。

于 2013-07-26T10:54:34.953 に答える