From 98913512561e10d409e1cce067b4ed42b72e337c Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 17 Feb 2012 00:09:30 +0100 Subject: [PATCH] Create "gmg convert_mongo_to_sql" command Finally, to make testing of sql a bit easier, create a bin/gmg command to do the conversion from mongo to sql. It's currently named "convert_mongo_to_sql". The most important option is the gmg -cf option to give a configfile with the appropiate sql_engine definition. --- mediagoblin/db/sql/convert.py | 6 +++--- mediagoblin/gmg_commands/__init__.py | 4 ++++ mediagoblin/gmg_commands/mongosql.py | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 mediagoblin/gmg_commands/mongosql.py diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index f5c93af5..403025dc 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -145,8 +145,8 @@ def convert_media_comments(mk_db): session.close() -def main(): - global_config, app_config = setup_global_and_app_config("mediagoblin.ini") +def run_conversion(config_name): + global_config, app_config = setup_global_and_app_config(config_name) sql_conn, sql_db = sql_connect(app_config) mk_conn, mk_db = mongo_connect(app_config) @@ -164,4 +164,4 @@ def main(): if __name__ == '__main__': - main() + run_conversion("mediagoblin.ini") diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index d804376b..054e2616 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -57,6 +57,10 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.dbupdate:dbupdate_parse_setup', 'func': 'mediagoblin.gmg_commands.dbupdate:dbupdate', 'help': 'Set up or update the SQL database'}, + 'convert_mongo_to_sql': { + 'setup': 'mediagoblin.gmg_commands.mongosql:mongosql_parser_setup', + 'func': 'mediagoblin.gmg_commands.mongosql:mongosql', + 'help': 'Convert Mongo DB data to SQL DB data'}, } diff --git a/mediagoblin/gmg_commands/mongosql.py b/mediagoblin/gmg_commands/mongosql.py new file mode 100644 index 00000000..a25263e2 --- /dev/null +++ b/mediagoblin/gmg_commands/mongosql.py @@ -0,0 +1,25 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.db.sql.convert import run_conversion + + +def mongosql_parser_setup(subparser): + pass + + +def mongosql(args): + run_conversion(args.conf_file) -- 2.25.1