Sequel.migration do change do # Создаём таблицу карт. # # `change` здесь удобен тем, что Sequel умеет автоматически # откатить `create_table` при rollback. create_table :cards do primary_key :id # Базовые поля карточки column :name, String, null: false column :elixir_cost, Integer, null: false column :rarity, String column :type, String # Уникальность имени карты add_unique_constraint :name # Ограничения constraint(:valid_rarity, Sequel.lit("rarity IN ('common','rare','epic','legendary','champion', 'evo', 'hero')")) constraint(:valid_type, Sequel.lit("type IN ('troop','spell','building')")) constraint(:positive_elixir, Sequel.lit("elixir_cost >= 0")) # 0/1 флаг: карточка в актуальной мете или нет. # Можно позже заменить на true/false, если решим хранить boolean. column :is_meta, Integer, default: 0 # Технические таймстемпы для аудита и сортировки column :created_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP column :updated_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP end end end