Awesome Caderno Sql
Текстова рольова гра, що запускається з psql, правила якої реалізовано у вигляді тригерів PostgreSQL та функцій plpgsql.
Текстова RPG для psql, де гравці створюють персонажа через INSERT, а тригер оповідає вступ. Правила гри написані на plpgsql, а схема версіонується за допомогою міграцій Flyway.
Огляд
Гра — це схема PostgreSQL, яку гравці використовують із psql. Їхні SQL-запити просувають історію, а база даних відповідає повідомленнями.
Вимоги
- Docker
- psql
- make
Швидкий старт
make setup # starts Postgres 17 and runs the Flyway migrations
make run # opens psql as the rpg user
Потім гравці читають доступні раси та класи й вставляють персонажа.
SELECT * FROM races;
SELECT * FROM classes;
INSERT INTO character_info (name, description, class, race, gender)
VALUES ('Aria', 'Uma maga curiosa', 2, 1, 'feminino');
Гравці, які хочуть готового персонажа, можуть скопіювати його з шаблонів. Функція use_template приймає ідентифікатор шаблону й вставляє цього персонажа в character_info.
SELECT * FROM char_templates;
SELECT use_template(1);
Команди
- make up запускає контейнер Postgres на локальному порту 5433.
- make migrate застосовує очікувані міграції через Flyway у режимі налагодження.
- make down видаляє контейнер і зберігає дані.
- make wipe видаляє контейнер і том з даними.
Структура проєкту
- migrations містить версіонований SQL, і кожен файл містить таблиці, типи та функції для однієї частини гри. Назва файлу вказує, якої саме частини, наприклад V1__races.sql.
- scripts містить допоміжні shell-скрипти, що стоять за цілями make.
- flyway.conf містить налаштування підключення Flyway для локальної бази даних.
Призначення
Проєкт — це спосіб попрактикуватися в PostgreSQL. Він використовує тригери, тригери подій, ролі та дозволи, переліки, складені типи та функції, що повертають набори.
Ліцензія
Код ліцензовано за Apache License 2.0, і файл LICENSE містить повний текст. Ця ліцензія поширюється на код і ні на що інше.
Історія є окремим твором. Це означає світ Nexus, його нації, персонажів, історію та лор, а також усі наративні тексти в грі, як-от надруковані повідомлення та описи фракцій. Історія є Copyright (c) 2014-2026 lyszt, усі права застережено. Ви можете читати її та грати в гру, але не можете копіювати, адаптувати чи публікувати історію без письмового дозволу. Файл NOTICE повторює це правило для всіх, хто розповсюджує код.
