Module: ROM::SQL

Defined in:
lib/rom/sql.rb,
lib/rom/sql/header.rb,
lib/rom/sql/version.rb,
lib/rom/sql/commands.rb,
lib/rom/sql/relation.rb,
lib/rom/sql/migration.rb,
lib/rom/sql/repository.rb,
lib/rom/sql/commands/create.rb,
lib/rom/sql/commands/delete.rb,
lib/rom/sql/commands/update.rb,
lib/rom/sql/plugin/pagination.rb,
lib/rom/sql/migration/migrator.rb,
lib/rom/sql/relation/inspection.rb,
lib/rom/sql/commands/transaction.rb,
lib/rom/sql/commands_ext/postgres.rb,
lib/rom/sql/relation/associations.rb,
lib/rom/sql/commands/error_wrapper.rb,
lib/rom/sql/relation/class_methods.rb,
lib/rom/sql/support/rails_log_subscriber.rb

Defined Under Namespace

Modules: Commands, Migration, Plugin Classes: DatabaseError, Header, RailsLogSubscriber, Relation, Repository

Constant Summary collapse

NoAssociationError =
Class.new(StandardError)
ConstraintError =
Class.new(ROM::CommandError)
VERSION =
'0.4.3'.freeze
Rollback =
Class.new(Sequel::Rollback)

Class Method Summary collapse

Class Method Details

.migration(repository = :default, &block) ⇒ Object

Create a database migration for a specific repository

Examples:

ROM.setup(
  default: [:sql, 'sqlite::memory'],
  other: [:sql, 'postgres://localhost/test']
)

ROM.finalize

ROM::SQL.migration do
  change do
    create_table(:users) do
      primary_key :id
      String :name
    end
  end
end

# for a non-default repository
ROM::SQL.migration(:other) do
  # ...
end


30
31
32
# File 'lib/rom/sql/migration.rb', line 30

def self.migration(repository = :default, &block)
  ROM.env.repositories[repository].migration(&block)
end