49 lines
1.6 KiB
Ruby
49 lines
1.6 KiB
Ruby
Sequel.migration do
|
|
|
|
up do
|
|
SequelRails::connection.run 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp"'
|
|
|
|
create_table :templates do
|
|
Uuid :id, primary_key: true, null: false, unique: false, default: Sequel.lit('uuid_generate_v4()')
|
|
Uuid :source_visualization_id, null: false
|
|
String :title, null: false
|
|
String :description, null: false, default: ''
|
|
String :min_supported_version, null: false, default: ''
|
|
String :max_supported_version, null: false, default: ''
|
|
String :code, null: false, default: ''
|
|
Uuid :organization_id, null: false
|
|
String :required_tables_list, null: false, default: ''
|
|
DateTime :created_at, null: false, default: Sequel::CURRENT_TIMESTAMP
|
|
end
|
|
|
|
SequelRails.connection.run(%Q{
|
|
ALTER TABLE "templates"
|
|
ADD CONSTRAINT source_visualization_id_fkey_cascade_del
|
|
FOREIGN KEY (source_visualization_id)
|
|
REFERENCES visualizations(id)
|
|
ON DELETE CASCADE
|
|
})
|
|
|
|
SequelRails.connection.run(%Q{
|
|
ALTER TABLE "templates"
|
|
ADD CONSTRAINT organization_id_fkey_cascade_del
|
|
FOREIGN KEY (organization_id)
|
|
REFERENCES organizations(id)
|
|
ON DELETE CASCADE
|
|
})
|
|
|
|
SequelRails.connection.run(%Q{
|
|
CREATE INDEX organization_id_idx ON templates(organization_id)
|
|
})
|
|
|
|
SequelRails.connection.run(%Q{
|
|
CREATE INDEX source_visualization_id_idx ON templates(source_visualization_id)
|
|
})
|
|
end
|
|
|
|
down do
|
|
drop_table :templates
|
|
end
|
|
|
|
end
|