Commit 14f36f553c4e57883d938bb17324ab939d395371
1 parent
fa86be39
Exists in
master
and in
4 other branches
Move lesia init commands to module
Showing
2 changed files
with
47 additions
and
23 deletions
Show diff stats
app/commands/commands.py
... | ... | @@ -15,6 +15,18 @@ from app.auth.models import User |
15 | 15 | from . import bp |
16 | 16 | |
17 | 17 | |
18 | +@bp.cli.command("lesia_to_csv") | |
19 | +def lesia_to_csv(): | |
20 | + """ | |
21 | + Extract some datas from lesia db to csv file for later db creation | |
22 | + - agents | |
23 | + - services | |
24 | + - capacities | |
25 | + - projects | |
26 | + :return: | |
27 | + """ | |
28 | + | |
29 | + | |
18 | 30 | @bp.cli.command("feed_from_lesia") |
19 | 31 | def feed_from_lesia(): |
20 | 32 | """ |
... | ... | @@ -22,27 +34,8 @@ def feed_from_lesia(): |
22 | 34 | |
23 | 35 | configure the proper database uri in the db_config.py file. |
24 | 36 | """ |
25 | - Base = automap_base() | |
26 | - | |
27 | - engine = create_engine(current_app.config['LESIA_AGENTS_DB_URI']) | |
28 | - | |
29 | - # reflect the tables | |
30 | - try: | |
31 | - Base.prepare(engine, reflect=True) | |
32 | - except OperationalError: | |
33 | - current_app.logger.error("Please, configure the mysql database (see db_config.py)") | |
34 | - sys.exit(-1) | |
35 | - | |
36 | - # mapped classes are now created with names by default | |
37 | - # matching that of the table name. | |
38 | - lesia_agent = Base.classes.agent | |
39 | - lesia_service = Base.classes.gestit_services | |
40 | - lesia_project = Base.classes.gestit_projets | |
41 | - lesia_fonction = Base.classes.gestit_fonctions | |
42 | - lesia_affectation = Base.classes.gestit_affectations | |
43 | - lesia_periods = Base.classes.gestit_semestres | |
44 | - | |
45 | - lesia_session = Session(engine) | |
37 | + from .lesia_db import lesia_agent, lesia_session, lesia_service, lesia_project, \ | |
38 | + lesia_fonction, lesia_periods, lesia_affectation | |
46 | 39 | |
47 | 40 | agents = lesia_session.query(lesia_agent).all() |
48 | 41 | for a in agents: |
... | ... | @@ -161,11 +154,11 @@ def create_db(): |
161 | 154 | except IntegrityError: |
162 | 155 | current_app.logger.error("User admin already exists, database should be empty at create") |
163 | 156 | if sqlite_uri: |
164 | - current_app.logger.error("see "+sqlite_uri) | |
157 | + current_app.logger.error("see " + sqlite_uri) | |
165 | 158 | sys.exit(-1) |
166 | 159 | |
167 | 160 | if sqlite_uri: |
168 | - current_app.logger.info("Created sqlite db: "+sqlite_uri) | |
161 | + current_app.logger.info("Created sqlite db: " + sqlite_uri) | |
169 | 162 | |
170 | 163 | |
171 | 164 | @bp.cli.command('user_add') | ... | ... |
... | ... | @@ -0,0 +1,31 @@ |
1 | +import sys | |
2 | + | |
3 | +from flask import current_app | |
4 | +from sqlalchemy import create_engine | |
5 | +from sqlalchemy.exc import OperationalError | |
6 | +from sqlalchemy.ext.automap import automap_base | |
7 | +from sqlalchemy.orm import Session | |
8 | + | |
9 | +lesia_base = automap_base() | |
10 | + | |
11 | +engine = create_engine(current_app.config['LESIA_AGENTS_DB_URI']) | |
12 | + | |
13 | +# reflect the tables | |
14 | +try: | |
15 | + lesia_base.prepare(engine, reflect=True) | |
16 | +except OperationalError: | |
17 | + current_app.logger.error("Please, configure the mysql database (see db_config.py)") | |
18 | + sys.exit(-1) | |
19 | + | |
20 | +lesia_session = Session(engine) | |
21 | + | |
22 | + | |
23 | +# mapped classes are now created with names by default | |
24 | +# matching that of the table name. | |
25 | +lesia_agent = lesia_base.classes.agent | |
26 | +lesia_service = lesia_base.classes.gestit_services | |
27 | +lesia_project = lesia_base.classes.gestit_projets | |
28 | +lesia_fonction = lesia_base.classes.gestit_fonctions | |
29 | +lesia_affectation = lesia_base.classes.gestit_affectations | |
30 | +lesia_periods = lesia_base.classes.gestit_semestres | |
31 | + | ... | ... |