55 lines
1.6 KiB
Ruby
55 lines
1.6 KiB
Ruby
require_relative '../../versions'
|
|
|
|
Sequel.migration do
|
|
change do
|
|
create_table(:users) do
|
|
primary_key :id
|
|
String :email, null: false, unique: true
|
|
String :name
|
|
DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
|
|
DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP
|
|
end
|
|
|
|
create_table(:identities) do
|
|
primary_key :id
|
|
foreign_key :user_id, :users, null: false, on_delete: :cascade
|
|
String :provider, null: false
|
|
String :uid, null: false
|
|
String :token, text: true
|
|
String :refresh_token, text: true
|
|
DateTime :expires_at
|
|
DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
|
|
DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP
|
|
unique [:provider, :uid]
|
|
end
|
|
|
|
create_enum(:project_type, %w[sbq hunt bingo dtq])
|
|
|
|
create_table(:pokemon) do
|
|
primary_key :id
|
|
String :name, unique: true, null: false, index: true
|
|
|
|
FO::Versions::VERSIONS_BY_GENERATION
|
|
.values
|
|
.map { |g| g[:version_groups] }
|
|
.reduce(&:+)
|
|
.each { |version|
|
|
TrueClass ("version_#{version}").to_sym, default: false
|
|
File ("version_#{version}_sprite").to_sym
|
|
}
|
|
|
|
DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
|
|
DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP
|
|
end
|
|
|
|
create_table(:projects) do
|
|
primary_key :id
|
|
foreign_key :user_id, :users, null: false, on_delete: :cascade
|
|
column :data, :jsonb, null: false
|
|
column :type, :project_type
|
|
DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
|
|
DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP
|
|
end
|
|
end
|
|
end
|