sh4nks 10 лет назад
Родитель
Сommit
3faf7e0a49
2 измененных файлов с 108 добавлено и 83 удалено
  1. 6 6
      manage.py
  2. 102 77
      migrations/versions/8ad96e49dc6_init.py

+ 6 - 6
manage.py

@@ -26,7 +26,7 @@ from werkzeug.utils import import_string
 from sqlalchemy.exc import IntegrityError, OperationalError
 from flask_script import (Manager, Shell, Server, prompt, prompt_pass,
                           prompt_bool)
-from flask_migrate import MigrateCommand
+from flask_migrate import MigrateCommand, upgrade
 
 from flaskbb import create_app
 from flaskbb.extensions import db
@@ -64,7 +64,7 @@ manager.add_command("shell", Shell(make_context=make_shell_context))
 def initdb():
     """Creates the database."""
 
-    db.create_all()
+    upgrade()
 
 
 @manager.command
@@ -116,7 +116,7 @@ def createall(dropdb=False, createdb=False):
 
     if not createdb:
         app.logger.info("Creating database...")
-        db.create_all()
+        upgrade()
 
     app.logger.info("Creating test data...")
     create_test_data()
@@ -152,7 +152,7 @@ def initflaskbb(username=None, password=None, email=None):
         if prompt_bool("Do you want to recreate the database? (y/n)"):
             db.session.rollback()
             db.drop_all()
-            db.create_all()
+            upgrade()
             create_default_groups()
             create_default_settings()
         else:
@@ -161,7 +161,7 @@ def initflaskbb(username=None, password=None, email=None):
         app.logger.error("No database found.")
         if prompt_bool("Do you want to create the database now? (y/n)"):
             db.session.rollback()
-            db.create_all()
+            upgrade()
             create_default_groups()
             create_default_settings()
         else:
@@ -198,7 +198,7 @@ def update_translations():
                      "-k", "lazy_gettext", "-o", "messages.pot", "."])
     subprocess.call(["pybabel", "update", "-i", "messages.pot",
                      "-d", translations_folder])
-    os.unlink("messages.pot")
+    #os.unlink("messages.pot")
 
 
 @manager.command

+ 102 - 77
migrations/versions/1862dd9f586c_init.py → migrations/versions/8ad96e49dc6_init.py

@@ -1,13 +1,13 @@
 """init
 
-Revision ID: 1862dd9f586c
+Revision ID: 8ad96e49dc6
 Revises: None
-Create Date: 2014-02-08 14:14:13.315697
+Create Date: 2015-01-08 23:14:01.941746
 
 """
 
 # revision identifiers, used by Alembic.
-revision = '1862dd9f586c'
+revision = '8ad96e49dc6'
 down_revision = None
 
 from alembic import op
@@ -16,47 +16,65 @@ import sqlalchemy as sa
 
 def upgrade():
     ### commands auto generated by Alembic - please adjust! ###
-    op.create_table('categories',
-    sa.Column('id', sa.Integer(), nullable=False),
-    sa.Column('title', sa.String(), nullable=False),
-    sa.Column('description', sa.String(), nullable=True),
-    sa.Column('position', sa.Integer(), nullable=False),
-    sa.PrimaryKeyConstraint('id')
-    )
     op.create_table('groups',
     sa.Column('id', sa.Integer(), nullable=False),
-    sa.Column('name', sa.String(), nullable=False),
-    sa.Column('description', sa.String(length=80), nullable=True),
+    sa.Column('name', sa.String(length=255), nullable=False),
+    sa.Column('description', sa.Text(), nullable=True),
     sa.Column('admin', sa.Boolean(), nullable=False),
     sa.Column('super_mod', sa.Boolean(), nullable=False),
     sa.Column('mod', sa.Boolean(), nullable=False),
     sa.Column('guest', sa.Boolean(), nullable=False),
     sa.Column('banned', sa.Boolean(), nullable=False),
+    sa.Column('mod_edituser', sa.Boolean(), nullable=False),
+    sa.Column('mod_banuser', sa.Boolean(), nullable=False),
     sa.Column('editpost', sa.Boolean(), nullable=False),
     sa.Column('deletepost', sa.Boolean(), nullable=False),
     sa.Column('deletetopic', sa.Boolean(), nullable=False),
-    sa.Column('locktopic', sa.Boolean(), nullable=False),
-    sa.Column('movetopic', sa.Boolean(), nullable=False),
     sa.Column('posttopic', sa.Boolean(), nullable=False),
     sa.Column('postreply', sa.Boolean(), nullable=False),
     sa.PrimaryKeyConstraint('id'),
     sa.UniqueConstraint('name')
     )
+    op.create_table('categories',
+    sa.Column('id', sa.Integer(), nullable=False),
+    sa.Column('title', sa.String(length=255), nullable=False),
+    sa.Column('description', sa.Text(), nullable=True),
+    sa.Column('position', sa.Integer(), nullable=False),
+    sa.PrimaryKeyConstraint('id')
+    )
+    op.create_table('settingsgroup',
+    sa.Column('key', sa.String(length=255), nullable=False),
+    sa.Column('name', sa.String(length=255), nullable=False),
+    sa.Column('description', sa.Text(), nullable=False),
+    sa.PrimaryKeyConstraint('key')
+    )
+    op.create_table('settings',
+    sa.Column('key', sa.String(length=255), nullable=False),
+    sa.Column('value', sa.PickleType(), nullable=False),
+    sa.Column('settingsgroup', sa.String(), nullable=False),
+    sa.Column('name', sa.String(length=200), nullable=False),
+    sa.Column('description', sa.Text(), nullable=False),
+    sa.Column('value_type', sa.String(length=20), nullable=False),
+    sa.Column('extra', sa.PickleType(), nullable=True),
+    sa.ForeignKeyConstraint(['settingsgroup'], ['settingsgroup.key'], name='fk_settingsgroup', use_alter=True),
+    sa.PrimaryKeyConstraint('key')
+    )
     op.create_table('users',
     sa.Column('id', sa.Integer(), nullable=False),
-    sa.Column('username', sa.String(), nullable=False),
-    sa.Column('email', sa.String(), nullable=False),
-    sa.Column('password', sa.String(length=80), nullable=False),
+    sa.Column('username', sa.String(length=200), nullable=False),
+    sa.Column('email', sa.String(length=200), nullable=False),
+    sa.Column('password', sa.String(length=120), nullable=False),
     sa.Column('date_joined', sa.DateTime(), nullable=True),
     sa.Column('lastseen', sa.DateTime(), nullable=True),
     sa.Column('birthday', sa.DateTime(), nullable=True),
-    sa.Column('gender', sa.String(), nullable=True),
-    sa.Column('website', sa.String(), nullable=True),
-    sa.Column('location', sa.String(), nullable=True),
-    sa.Column('signature', sa.String(), nullable=True),
-    sa.Column('avatar', sa.String(), nullable=True),
-    sa.Column('notes', sa.Text(length=5000), nullable=True),
-    sa.Column('theme', sa.String(), nullable=True),
+    sa.Column('gender', sa.String(length=10), nullable=True),
+    sa.Column('website', sa.String(length=200), nullable=True),
+    sa.Column('location', sa.String(length=100), nullable=True),
+    sa.Column('signature', sa.Text(), nullable=True),
+    sa.Column('avatar', sa.String(length=200), nullable=True),
+    sa.Column('notes', sa.Text(), nullable=True),
+    sa.Column('theme', sa.String(length=15), nullable=True),
+    sa.Column('language', sa.String(length=15), nullable=True),
     sa.Column('post_count', sa.Integer(), nullable=True),
     sa.Column('primary_group_id', sa.Integer(), nullable=False),
     sa.ForeignKeyConstraint(['primary_group_id'], ['groups.id'], ),
@@ -64,25 +82,43 @@ def upgrade():
     sa.UniqueConstraint('email'),
     sa.UniqueConstraint('username')
     )
+    op.create_table('topictracker',
+    sa.Column('user_id', sa.Integer(), nullable=False),
+    sa.Column('topic_id', sa.Integer(), nullable=False),
+    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_tracker_topic_id', use_alter=True),
+    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
+    )
+    op.create_table('groups_users',
+    sa.Column('user_id', sa.Integer(), nullable=True),
+    sa.Column('group_id', sa.Integer(), nullable=True),
+    sa.ForeignKeyConstraint(['group_id'], ['groups.id'], ),
+    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
+    )
     op.create_table('forumsread',
     sa.Column('user_id', sa.Integer(), nullable=False),
     sa.Column('forum_id', sa.Integer(), nullable=False),
     sa.Column('last_read', sa.DateTime(), nullable=True),
     sa.Column('cleared', sa.DateTime(), nullable=True),
-    sa.ForeignKeyConstraint(['forum_id'], ['topics.id'], name='fk_forum_id', use_alter=True),
+    sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_fr_forum_id', use_alter=True),
     sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
     sa.PrimaryKeyConstraint('user_id', 'forum_id')
     )
+    op.create_table('moderators',
+    sa.Column('user_id', sa.Integer(), nullable=False),
+    sa.Column('forum_id', sa.Integer(), nullable=False),
+    sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_forum_id', use_alter=True),
+    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
+    )
     op.create_table('posts',
     sa.Column('id', sa.Integer(), nullable=False),
-    sa.Column('topic_id', sa.Integer(), nullable=False),
-    sa.Column('user_id', sa.Integer(), nullable=False),
-    sa.Column('username', sa.String(), nullable=False),
+    sa.Column('topic_id', sa.Integer(), nullable=True),
+    sa.Column('user_id', sa.Integer(), nullable=True),
+    sa.Column('username', sa.String(length=200), nullable=False),
     sa.Column('content', sa.Text(), nullable=False),
     sa.Column('date_created', sa.DateTime(), nullable=True),
     sa.Column('date_modified', sa.DateTime(), nullable=True),
-    sa.Column('modified_by', sa.String(), nullable=True),
-    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_topic_id', ondelete='CASCADE', use_alter=True),
+    sa.Column('modified_by', sa.String(length=200), nullable=True),
+    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_post_topic_id', ondelete='CASCADE', use_alter=True),
     sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
     sa.PrimaryKeyConstraint('id')
     )
@@ -91,7 +127,7 @@ def upgrade():
     sa.Column('user_id', sa.Integer(), nullable=False),
     sa.Column('from_user_id', sa.Integer(), nullable=True),
     sa.Column('to_user_id', sa.Integer(), nullable=True),
-    sa.Column('subject', sa.String(), nullable=True),
+    sa.Column('subject', sa.String(length=255), nullable=True),
     sa.Column('message', sa.Text(), nullable=True),
     sa.Column('date_created', sa.DateTime(), nullable=True),
     sa.Column('trash', sa.Boolean(), nullable=False),
@@ -108,27 +144,29 @@ def upgrade():
     sa.Column('forum_id', sa.Integer(), nullable=False),
     sa.Column('last_read', sa.DateTime(), nullable=True),
     sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_tr_forum_id', use_alter=True),
-    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_topic_id', use_alter=True),
+    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_tr_topic_id', use_alter=True),
     sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
     sa.PrimaryKeyConstraint('user_id', 'topic_id', 'forum_id')
     )
-    op.create_table('topictracker',
-    sa.Column('user_id', sa.Integer(), nullable=False),
-    sa.Column('topic_id', sa.Integer(), nullable=False),
-    sa.ForeignKeyConstraint(['topic_id'], ['topics.id'], name='fk_topic_id', use_alter=True),
-    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
-    )
-    op.create_table('groups_users',
-    sa.Column('user_id', sa.Integer(), nullable=True),
-    sa.Column('group_id', sa.Integer(), nullable=True),
-    sa.ForeignKeyConstraint(['group_id'], ['groups.id'], ),
-    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
-    )
-    op.create_table('moderators',
-    sa.Column('user_id', sa.Integer(), nullable=False),
+    op.create_table('topics',
+    sa.Column('id', sa.Integer(), nullable=False),
     sa.Column('forum_id', sa.Integer(), nullable=False),
-    sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_forum_id', use_alter=True),
-    sa.ForeignKeyConstraint(['user_id'], ['users.id'], )
+    sa.Column('title', sa.String(length=255), nullable=False),
+    sa.Column('user_id', sa.Integer(), nullable=True),
+    sa.Column('username', sa.String(length=200), nullable=False),
+    sa.Column('date_created', sa.DateTime(), nullable=True),
+    sa.Column('last_updated', sa.DateTime(), nullable=True),
+    sa.Column('locked', sa.Boolean(), nullable=True),
+    sa.Column('important', sa.Boolean(), nullable=True),
+    sa.Column('views', sa.Integer(), nullable=True),
+    sa.Column('post_count', sa.Integer(), nullable=True),
+    sa.Column('first_post_id', sa.Integer(), nullable=True),
+    sa.Column('last_post_id', sa.Integer(), nullable=True),
+    sa.ForeignKeyConstraint(['first_post_id'], ['posts.id'], ondelete='CASCADE'),
+    sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_topic_forum_id', use_alter=True),
+    sa.ForeignKeyConstraint(['last_post_id'], ['posts.id'], ),
+    sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
+    sa.PrimaryKeyConstraint('id')
     )
     op.create_table('reports',
     sa.Column('id', sa.Integer(), nullable=False),
@@ -137,7 +175,7 @@ def upgrade():
     sa.Column('post_id', sa.Integer(), nullable=False),
     sa.Column('zapped', sa.DateTime(), nullable=True),
     sa.Column('zapped_by', sa.Integer(), nullable=True),
-    sa.Column('reason', sa.String(), nullable=True),
+    sa.Column('reason', sa.Text(), nullable=True),
     sa.ForeignKeyConstraint(['post_id'], ['posts.id'], ),
     sa.ForeignKeyConstraint(['reporter_id'], ['users.id'], ),
     sa.ForeignKeyConstraint(['zapped_by'], ['users.id'], ),
@@ -146,37 +184,22 @@ def upgrade():
     op.create_table('forums',
     sa.Column('id', sa.Integer(), nullable=False),
     sa.Column('category_id', sa.Integer(), nullable=False),
-    sa.Column('title', sa.String(), nullable=False),
-    sa.Column('description', sa.String(), nullable=True),
+    sa.Column('title', sa.String(length=255), nullable=False),
+    sa.Column('description', sa.Text(), nullable=True),
     sa.Column('position', sa.Integer(), nullable=False),
     sa.Column('locked', sa.Boolean(), nullable=False),
     sa.Column('show_moderators', sa.Boolean(), nullable=False),
-    sa.Column('external', sa.String(), nullable=True),
+    sa.Column('external', sa.String(length=200), nullable=True),
     sa.Column('post_count', sa.Integer(), nullable=False),
     sa.Column('topic_count', sa.Integer(), nullable=False),
     sa.Column('last_post_id', sa.Integer(), nullable=True),
+    sa.Column('last_post_title', sa.String(length=255), nullable=True),
+    sa.Column('last_post_user_id', sa.Integer(), nullable=True),
+    sa.Column('last_post_username', sa.String(length=255), nullable=True),
+    sa.Column('last_post_created', sa.DateTime(), nullable=True),
     sa.ForeignKeyConstraint(['category_id'], ['categories.id'], ),
     sa.ForeignKeyConstraint(['last_post_id'], ['posts.id'], ),
-    sa.PrimaryKeyConstraint('id')
-    )
-    op.create_table('topics',
-    sa.Column('id', sa.Integer(), nullable=False),
-    sa.Column('forum_id', sa.Integer(), nullable=False),
-    sa.Column('title', sa.String(), nullable=False),
-    sa.Column('user_id', sa.Integer(), nullable=True),
-    sa.Column('username', sa.String(), nullable=False),
-    sa.Column('date_created', sa.DateTime(), nullable=True),
-    sa.Column('last_updated', sa.DateTime(), nullable=True),
-    sa.Column('locked', sa.Boolean(), nullable=True),
-    sa.Column('important', sa.Boolean(), nullable=True),
-    sa.Column('views', sa.Integer(), nullable=True),
-    sa.Column('post_count', sa.Integer(), nullable=True),
-    sa.Column('first_post_id', sa.Integer(), nullable=True),
-    sa.Column('last_post_id', sa.Integer(), nullable=True),
-    sa.ForeignKeyConstraint(['first_post_id'], ['posts.id'], ondelete='CASCADE'),
-    sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_forum_id', use_alter=True),
-    sa.ForeignKeyConstraint(['last_post_id'], ['posts.id'], ),
-    sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
+    sa.ForeignKeyConstraint(['last_post_user_id'], ['users.id'], ),
     sa.PrimaryKeyConstraint('id')
     )
     ### end Alembic commands ###
@@ -184,17 +207,19 @@ def upgrade():
 
 def downgrade():
     ### commands auto generated by Alembic - please adjust! ###
-    op.drop_table('topics')
     op.drop_table('forums')
     op.drop_table('reports')
-    op.drop_table('moderators')
-    op.drop_table('groups_users')
-    op.drop_table('topictracker')
+    op.drop_table('topics')
     op.drop_table('topicsread')
     op.drop_table('privatemessages')
     op.drop_table('posts')
+    op.drop_table('moderators')
     op.drop_table('forumsread')
+    op.drop_table('groups_users')
+    op.drop_table('topictracker')
     op.drop_table('users')
-    op.drop_table('groups')
+    op.drop_table('settings')
+    op.drop_table('settingsgroup')
     op.drop_table('categories')
+    op.drop_table('groups')
     ### end Alembic commands ###