module

Clear::Migration::Helper

Inherits Clear::Migration::FullTextSearchableHelpers

Constants

TYPE_MAPPING = {"string" => "text", "int32" => "int", "int64" => "bigint", "long" => "bigint", "bigdecimal" => "numeric", "datetime" => "timestamp without time zone"}

Class methods

datatype(type : String)

Replace some common type to their equivalent in postgresql if the type is not found in the correspondance table, then return itself

Source

Instance methods

add_column(table, column, datatype, nullable = false, constraint = nil, default = nil, with_values = false)

Add a column to a specific table

Source
add_operation(op : Operation)
Source
apply(dir : Direction = Clear::Migration::Direction::Up)

This will apply the migration in a given direction (up or down)

Source
change(dir)
Source
change_column_type(table, column, to, from = nil)
Source
change_type_column(table, from, to)
Source
create_enum(name : Clear::SQL::Symbolic, arr : Enumerable(T)) forall T
Source
create_enum(name : Clear::SQL::Symbolic, e : ::Clear::Enum.class)
Source
create_index(table, columns : Array(String), name = nil, using = nil, unique = false)
Source
create_index(table, column, name = nil, using = nil, unique = false)

Add a column to a specific table

Source
create_table(name, id : Symbol | Bool = true, schema = "public", &)

Helper used in migration to create a new table.

Usage:

create_table(:users) do |t|
  t.column :first_name, :string
  t.column :last_name, :string
  t.column :email, :string, unique: true
  t.timestamps
end

By default, a column id of type integer will be created as primary key of the table. This can be prevented using primary: false

create_table(:users, id: false) do |t|
  t.column :user_id, :integer, primary: true # Use custom name for the primary key
  t.column :first_name, :string
  t.column :last_name, :string
  t.column :email, :string, unique: true
  t.timestamps
end
Source
drop_column(table, column, type)
Source
drop_enum(name : Clear::SQL::Symbolic, arr : Enumerable(T) | Nil = nil) forall T
Source
execute(sql : String)
Source
irreversible!
Source
rename_column(table, from, to)
Source