db seed command

This commit is contained in:
Gardient
2021-09-21 18:38:52 +03:00
parent 59049dcf72
commit d48f36df60
6 changed files with 19 additions and 5 deletions

2
.gitignore vendored
View File

@@ -144,4 +144,4 @@ cython_debug/
# End of https://www.toptal.com/developers/gitignore/api/python
dev.db
*.db

View File

@@ -54,6 +54,7 @@ def register_shellcontext(app: Flask):
"""Shell context objects."""
return {
'db': db,
'TargetExchange': target_exchange.models.TargetExchange
}
app.shell_context_processor(shell_context)
@@ -63,3 +64,4 @@ def register_commands(app: Flask):
"""Register Click commands."""
app.cli.add_command(commands.clean)
app.cli.add_command(commands.urls)
app.cli.add_command(commands.seed)

View File

@@ -5,6 +5,8 @@ from flask import current_app
from flask.cli import with_appcontext
from werkzeug.exceptions import MethodNotAllowed, NotFound
from .target_exchange.models import TargetExchange
@click.command()
def clean():
"""Remove *.pyc and *.pyo files recursively starting at current directory.
@@ -79,3 +81,11 @@ def urls(url, order):
for row in rows:
click.echo(str_template.format(*row[:column_length]))
@click.command()
@with_appcontext
def seed():
"""Seed the database"""
TargetExchange.ensure_created("")
TargetExchange.ensure_created("webhooks")

View File

@@ -1,3 +1,3 @@
"""exchange management"""
from . import views
from . import views, models

View File

@@ -6,5 +6,7 @@ class TargetExchange(SurrogatePK, Model):
__tablename__ = "target-exchange"
name = Column(db.String(255), unique=True, nullable=False)
def __init__(self, name, **kwargs) -> None:
Model.__init__(self, name=name, **kwargs)
@staticmethod
def ensure_created(name):
if TargetExchange.query.filter_by(name=name).first() is None:
TargetExchange(name=name).save()