Добавлены комментарии для начинающих по настройке БД и WAL
This commit is contained in:
@@ -1,14 +1,23 @@
|
|||||||
Sequel.migration do
|
Sequel.migration do
|
||||||
change do
|
change do
|
||||||
|
# Создаём таблицу карт.
|
||||||
|
#
|
||||||
|
# `change` здесь удобен тем, что Sequel умеет автоматически
|
||||||
|
# откатить `create_table` при rollback.
|
||||||
create_table :cards do
|
create_table :cards do
|
||||||
primary_key :id
|
primary_key :id
|
||||||
|
|
||||||
|
# Базовые поля карточки
|
||||||
column :name, String, null: false
|
column :name, String, null: false
|
||||||
column :elixir_cost, Integer, null: false
|
column :elixir_cost, Integer, null: false
|
||||||
column :rarity, String
|
column :rarity, String
|
||||||
column :type, String
|
column :type, String
|
||||||
|
|
||||||
|
# 0/1 флаг: карточка в актуальной мете или нет.
|
||||||
|
# Можно позже заменить на true/false, если решим хранить boolean.
|
||||||
column :is_meta, Integer, default: 0
|
column :is_meta, Integer, default: 0
|
||||||
|
|
||||||
|
# Технические таймстемпы для аудита и сортировки
|
||||||
column :created_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP
|
column :created_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP
|
||||||
column :updated_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP
|
column :updated_at, DateTime, null: false, default: Sequel::CURRENT_TIMESTAMP
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,11 +1,20 @@
|
|||||||
Sequel.migration do
|
Sequel.migration do
|
||||||
up do
|
up do
|
||||||
|
# WAL (Write-Ahead Logging) обычно лучше для веб-приложений:
|
||||||
|
# - чтение и запись меньше блокируют друг друга
|
||||||
|
# - выше стабильность под параллельной нагрузкой
|
||||||
run "PRAGMA journal_mode = WAL;"
|
run "PRAGMA journal_mode = WAL;"
|
||||||
|
|
||||||
|
# Нормальный компромисс между скоростью и надёжностью на dev/staging.
|
||||||
|
# Для максимально консервативного режима можно использовать FULL.
|
||||||
run "PRAGMA synchronous = NORMAL;"
|
run "PRAGMA synchronous = NORMAL;"
|
||||||
end
|
end
|
||||||
|
|
||||||
down do
|
down do
|
||||||
|
# Откат к классическому режиму журнала SQLite.
|
||||||
run "PRAGMA journal_mode = DELETE;"
|
run "PRAGMA journal_mode = DELETE;"
|
||||||
|
|
||||||
|
# Более строгая синхронизация при откате настроек.
|
||||||
run "PRAGMA synchronous = FULL;"
|
run "PRAGMA synchronous = FULL;"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
module ClashDeckGenerator2
|
module ClashDeckGenerator2
|
||||||
class Settings < Hanami::Settings
|
class Settings < Hanami::Settings
|
||||||
|
# Главный URL базы данных для приложения.
|
||||||
|
#
|
||||||
|
# Берётся из переменной окружения DATABASE_URL (см. .env).
|
||||||
|
# Пример для текущего проекта: sqlite://db/db.sqlite3
|
||||||
|
#
|
||||||
|
# Важно: Hanami CLI использует это значение в командах db prepare/migrate.
|
||||||
setting :database_url, constructor: Types::String
|
setting :database_url, constructor: Types::String
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user