0

モデルと「people」というテーブルがあるとしましょう。

Sqlite3 アダプターの使用中に次のコードを実行します。

People.create(name: "jim", age: 23)

これにより、新しい人物が作成されます。

1|jim|23|2013-10-15 16:59:24.708963|2013-10-15 16:59:24.708963

さて、Sqlite3 の代わりに PostgreSQL を使用していた場合、プロセスは同じになりますよね? 別の人を作成するには、次のように書きます。

People.create(name: "alice", age: 32) 

それらはどのように同じですか?これは、彼らが「アクティブレコード」を通過しているからですか?

アクティブ レコードは、データベースでの簡単な CRUD を可能にする単なるライブラリであると考えるのは正しいでしょうか? での設定のおかげで、さまざまなデータベースと対話する方法も知っていますdatabase.ymlか?

アプリケーションが sqlite3 で動作する場合、アプリケーションの将来の開発者がデータベースをインストールし、database.yml を正しく構成した場合、どのデータベースでも動作しますか?

4

1 に答える 1

1

おっしゃるとおり、Rails を介して Sqlite3、PostgreSQL、または任意のデータベースを使用してデータベースのユーザーを作成するプロセスは同じです。ActiveRecord はそれらすべてを処理し、database.yml の構成を使用してこれを行う方法を認識しています。

理論的には、アプリケーションが Sqlite3 で動作する場合、database.yml を変更すると他のデータベースでも動作します。ただし、データベース間の特異性のため、これは保証されません。例ここここ、およびここ。最初のデータベースで何かが機能し、それを切り替えると壊れてしまう可能性があるため、注意が必要です。

本格的なプロジェクトの場合、開発と本番で同じデータベースを使用することをお勧めします。

于 2013-10-15T17:45:26.560 に答える