this articleの後にマルチテナントアプリを開発しています。問題は、初めてすべての移行を実行する場合です。 schema.rb
ファイルではパブリック・スキーマの表のみですが、他のスキーマはどうなっていますか?異なる構造の他のスキーマを作成するにはどうすればいいですか?public
私は宝石を使いたくありません。Postgres複数のスキーマデータベースを使用する
publicスキーマのためにプライベートスキーマ
class CreateObjectives < ActiveRecord::Migration
include MultiSchema
def change
with_in_schemas :except => :public do
# Create objectives table
end
end
end
schema.rb
のために作成されるclass CreatePerspectives < ActiveRecord::Migration
include MultiSchema
def up
with_in_schemas :only => :public do
# Create table perspectives
end
end
def down
with_in_schemas :only => :public do
drop_table :prespectives
end
end
end
表を作成する
以下の表の例を参照してください。
ActiveRecord::Schema.define(version: 20130810172443) do create_table "perspectives", force: true do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end end
複数のスキーマが必要な理由がわかりません。 1つしか使用できず、ユーザーの役割に基づいて特定の情報にアクセスできないようにすることはできませんか? –
私は何年もPostgresを使用し愛してきました。そして、スキーマとその使い方に精通しています。私はRailsの開発者でもあります。つまり、私がしなければ、私は決して二つを一緒に使うことはありません。あなたはする必要はありません。単にデータレイアウトを設計するだけです(通常はこれを「スキーマ」と呼んでいますが、問題を混乱させたくありません)、別のテーブル「会社」を追加するか、レコードを所有するテーブルを追加します。次に、さまざまなテーブル内でその所有権を与えます。私はこのようないくつかのアプリを持っており、それは難しいことではありません。 –