- Add PostgreSQL database with SQLAlchemy async support - Create models: User, UserFact, UserPreference, Conversation, Message, Guild, GuildMember - Add custom name support so bot knows 'who is who' - Add user facts system for remembering things about users - Add persistent conversation history that survives restarts - Add memory commands cog (!setname, !remember, !whatdoyouknow, !forgetme) - Add admin commands (!setusername, !teachbot) - Set up Alembic for database migrations - Update docker-compose with PostgreSQL service - Gracefully falls back to in-memory storage when DB not configured
72 lines
1.4 KiB
INI
72 lines
1.4 KiB
INI
# Alembic Configuration File
|
|
|
|
[alembic]
|
|
# path to migration scripts
|
|
script_location = alembic
|
|
|
|
# template used to generate migration file names
|
|
file_template = %%(year)d%%(month).2d%%(day).2d_%%(hour).2d%%(minute).2d_%%(rev)s_%%(slug)s
|
|
|
|
# sys.path path prepend for the migration environment
|
|
prepend_sys_path = src
|
|
|
|
# timezone to use when rendering the date within the migration file
|
|
timezone = UTC
|
|
|
|
# max length of characters to apply to the "slug" field
|
|
truncate_slug_length = 40
|
|
|
|
# set to 'true' to run the environment during the 'revision' command
|
|
revision_environment = false
|
|
|
|
# set to 'true' to allow .pyc and .pyo files without a source .py file
|
|
sourceless = false
|
|
|
|
# version number format
|
|
version_num_width = 4
|
|
|
|
# version path separator
|
|
version_path_separator = os
|
|
|
|
# output encoding used when revision files are written
|
|
output_encoding = utf-8
|
|
|
|
# Database URL - will be overridden by env.py from settings
|
|
sqlalchemy.url = driver://user:pass@localhost/dbname
|
|
|
|
[post_write_hooks]
|
|
|
|
[loggers]
|
|
keys = root,sqlalchemy,alembic
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = WARN
|
|
handlers = console
|
|
qualname =
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARN
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[logger_alembic]
|
|
level = INFO
|
|
handlers =
|
|
qualname = alembic
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
|
datefmt = %H:%M:%S
|