aboutsummaryrefslogtreecommitdiff
path: root/manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'manager.py')
-rwxr-xr-xmanager.py75
1 files changed, 10 insertions, 65 deletions
diff --git a/manager.py b/manager.py
index 348ed9c3..020a0f4c 100755
--- a/manager.py
+++ b/manager.py
@@ -1,20 +1,10 @@
-#!/usr/bin/env python
-import os
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
from bootstrap import application, db, populate_g
from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand
-from werkzeug import generate_password_hash
-
-from sqlalchemy.engine import reflection
-from sqlalchemy.schema import (
- MetaData,
- Table,
- DropTable,
- ForeignKeyConstraint,
- DropConstraint)
-
-
Migrate(application, db)
manager = Manager(application)
@@ -23,62 +13,18 @@ manager.add_command('db', MigrateCommand)
@manager.command
def db_empty():
"Will drop every datas stocked in db."
- # From http://www.sqlalchemy.org/trac/wiki/UsageRecipes/DropEverything
- conn = db.engine.connect()
-
- # the transaction only applies if the DB supports
- # transactional DDL, i.e. Postgresql, MS SQL Server
- trans = conn.begin()
-
- inspector = reflection.Inspector.from_engine(db.engine)
-
- # gather all data first before dropping anything.
- # some DBs lock after things have been dropped in
- # a transaction.
- metadata = MetaData()
-
- tbs = []
- all_fks = []
-
- for table_name in inspector.get_table_names():
- fks = []
- for fk in inspector.get_foreign_keys(table_name):
- if not fk['name']:
- continue
- fks.append(ForeignKeyConstraint((), (), name=fk['name']))
- t = Table(table_name, metadata, *fks)
- tbs.append(t)
- all_fks.extend(fks)
-
- for fkc in all_fks:
- conn.execute(DropConstraint(fkc))
-
- for table in tbs:
- conn.execute(DropTable(table))
-
- trans.commit()
+ with application.app_context():
+ populate_g()
+ import pyaggr3g470r.models
+ pyaggr3g470r.models.db_empty(db)
@manager.command
def db_create():
"Will create the database from conf parameters."
with application.app_context():
populate_g()
- from pyaggr3g470r.models import User, Role
- db.create_all()
-
- role_admin = Role(name="admin")
- role_user = Role(name="user")
-
- user1 = User(nickname="admin",
- email=os.environ.get("ADMIN_EMAIL",
- "root@pyAggr3g470r.localhost"),
- pwdhash=generate_password_hash(
- os.environ.get("ADMIN_PASSWORD", "password")),
- activation_key="")
- user1.roles.extend([role_admin, role_user])
-
- db.session.add(user1)
- db.session.commit()
+ import pyaggr3g470r.models
+ pyaggr3g470r.models.db_create(db)
@manager.command
def fetch(user, password, limit=100):
@@ -114,6 +60,5 @@ def fetch_asyncio(user_id, feed_id):
print("Fetching articles for " + user.nickname)
feed_getter = crawler.retrieve_feed(user, feed_id)
-
if __name__ == '__main__':
- manager.run()
+ manager.run() \ No newline at end of file
bgstack15