Files
turbovault-app/db/migrate/20260328183428_create_users.rb
2026-03-29 02:37:49 -04:00

30 lines
755 B
Ruby

class CreateUsers < ActiveRecord::Migration[8.1]
def change
create_table :users do |t|
t.string :email, null: false
t.string :username, null: false
t.string :password_digest, null: false
t.text :bio
t.boolean :profile_public, default: false, null: false
t.timestamps
end
add_index :users, :email, unique: true
add_index :users, :username, unique: true
# Enable Row Level Security
enable_rls_on :users
end
private
def enable_rls_on(table_name)
execute <<-SQL
ALTER TABLE #{table_name} ENABLE ROW LEVEL SECURITY;
CREATE POLICY #{table_name}_isolation_policy ON #{table_name}
USING (id = current_setting('app.current_user_id', true)::bigint);
SQL
end
end