Merge remote-tracking branch 'refs/remotes/rodney757/dbupdate'
Conflicts: mediagoblin/db/util.py mediagoblin/gmg_commands/dbupdate.py
This commit is contained in:
commit
e0bf6b4bf7
@ -25,6 +25,7 @@ from werkzeug.exceptions import HTTPException
|
|||||||
from werkzeug.routing import RequestRedirect
|
from werkzeug.routing import RequestRedirect
|
||||||
|
|
||||||
from mediagoblin import meddleware, __version__
|
from mediagoblin import meddleware, __version__
|
||||||
|
from mediagoblin.db.util import check_db_up_to_date
|
||||||
from mediagoblin.tools import common, session, translate, template
|
from mediagoblin.tools import common, session, translate, template
|
||||||
from mediagoblin.tools.response import render_http_exception
|
from mediagoblin.tools.response import render_http_exception
|
||||||
from mediagoblin.tools.theme import register_themes
|
from mediagoblin.tools.theme import register_themes
|
||||||
@ -91,6 +92,9 @@ class MediaGoblinApp(object):
|
|||||||
# Set up the database
|
# Set up the database
|
||||||
self.db = setup_database(app_config['run_migrations'])
|
self.db = setup_database(app_config['run_migrations'])
|
||||||
|
|
||||||
|
# Quit app if need to run dbupdate
|
||||||
|
check_db_up_to_date()
|
||||||
|
|
||||||
# Register themes
|
# Register themes
|
||||||
self.theme_registry, self.current_theme = register_themes(app_config)
|
self.theme_registry, self.current_theme = register_themes(app_config)
|
||||||
|
|
||||||
|
@ -14,9 +14,12 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from mediagoblin import mg_globals as mgg
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
from mediagoblin.db.models import MediaEntry, Tag, MediaTag, Collection
|
from mediagoblin.db.models import MediaEntry, Tag, MediaTag, Collection
|
||||||
|
from mediagoblin.gmg_commands.dbupdate import gather_database_data
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Random utility functions
|
# Random utility functions
|
||||||
@ -67,6 +70,19 @@ def check_collection_slug_used(creator_id, slug, ignore_c_id):
|
|||||||
does_exist = Session.query(Collection.id).filter(filt).first() is not None
|
does_exist = Session.query(Collection.id).filter(filt).first() is not None
|
||||||
return does_exist
|
return does_exist
|
||||||
|
|
||||||
|
|
||||||
|
def check_db_up_to_date():
|
||||||
|
"""Check if the database is up to date and quit if not"""
|
||||||
|
dbdatas = gather_database_data(mgg.global_config.get('plugins', {}).keys())
|
||||||
|
|
||||||
|
for dbdata in dbdatas:
|
||||||
|
migration_manager = dbdata.make_migration_manager(Session())
|
||||||
|
if migration_manager.database_current_migration is None or \
|
||||||
|
migration_manager.migrations_to_run():
|
||||||
|
sys.exit("Your database is not up to date. Please run "
|
||||||
|
"'gmg dbupdate' before starting the webserver.")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from mediagoblin.db.open import setup_connection_and_db_from_config
|
from mediagoblin.db.open import setup_connection_and_db_from_config
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ logging.basicConfig()
|
|||||||
## Let's not set the level as debug by default to avoid confusing users :)
|
## Let's not set the level as debug by default to avoid confusing users :)
|
||||||
# _log.setLevel(logging.DEBUG)
|
# _log.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
||||||
def dbupdate_parse_setup(subparser):
|
def dbupdate_parse_setup(subparser):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user