Author: Alex
Date: 2009-12-22 08:37:40 -0600 (Tue, 22 Dec 2009)
New Revision: 11950
Modified:
django/branches/soc2009/multidb/django/core/management/commands/createcachetable.py
django/branches/soc2009/multidb/django/core/management/commands/dbshell.py
django/branches/soc2009/multidb/django/core/management/commands/dumpdata.py
django/branches/soc2009/multidb/django/core/management/commands/flush.py
django/branches/soc2009/multidb/django/core/management/commands/inspectdb.py
django/branches/soc2009/multidb/django/core/management/commands/loaddata.py
django/branches/soc2009/multidb/django/core/management/commands/reset.py
django/branches/soc2009/multidb/django/core/management/commands/sql.py
django/branches/soc2009/multidb/django/core/management/commands/sqlall.py
django/branches/soc2009/multidb/django/core/management/commands/sqlclear.py
django/branches/soc2009/multidb/django/core/management/commands/sqlcustom.py
django/branches/soc2009/multidb/django/core/management/commands/sqlflush.py
django/branches/soc2009/multidb/django/core/management/commands/sqlindexes.py
django/branches/soc2009/multidb/django/core/management/commands/sqlreset.py
django/branches/soc2009/multidb/django/core/management/commands/sqlsequencereset.py
django/branches/soc2009/multidb/django/core/management/commands/syncdb.py
Log:
[soc2009/multidb] Updated management commands to ensure that a database name is
always available. Patch from Russell Keith-Magee.
Modified:
django/branches/soc2009/multidb/django/core/management/commands/createcachetable.py
===================================================================
---
django/branches/soc2009/multidb/django/core/management/commands/createcachetable.py
2009-12-22 14:37:26 UTC (rev 11949)
+++
django/branches/soc2009/multidb/django/core/management/commands/createcachetable.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -18,7 +18,7 @@
requires_model_validation = False
def handle_label(self, tablename, **options):
- alias = options['database']
+ alias = options.get('database', DEFAULT_DB_ALIAS)
connection = connections[alias]
fields = (
# "key" is a reserved word in MySQL, so use "cache_key" instead.
Modified:
django/branches/soc2009/multidb/django/core/management/commands/dbshell.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/dbshell.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/dbshell.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,7 +16,7 @@
requires_model_validation = False
def handle(self, **options):
- connection = connections[options['database']]
+ connection = connections[options.get('database', DEFAULT_DB_ALIAS)]
try:
connection.client.runshell()
except OSError:
Modified:
django/branches/soc2009/multidb/django/core/management/commands/dumpdata.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/dumpdata.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/dumpdata.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -28,7 +28,7 @@
format = options.get('format','json')
indent = options.get('indent',None)
- using = options['database']
+ using = options.get('database', DEFAULT_DB_ALIAS)
connection = connections[using]
exclude = options.get('exclude',[])
show_traceback = options.get('traceback', False)
Modified:
django/branches/soc2009/multidb/django/core/management/commands/flush.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/flush.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/flush.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -21,62 +21,57 @@
help = "Executes ``sqlflush`` on the current database."
def handle_noargs(self, **options):
- if not options['database']:
- dbs = connections
- else:
- dbs = [options['database']]
-
+ db = options.get('database', DEFAULT_DB_ALIAS)
+ connection = connections[db]
verbosity = int(options.get('verbosity', 1))
interactive = options.get('interactive')
self.style = no_style()
+ # Import the 'management' module within each installed app, to register
+ # dispatcher events.
for app_name in settings.INSTALLED_APPS:
try:
import_module('.management', app_name)
except ImportError:
pass
- for db in dbs:
- connection = connections[db]
- # Import the 'management' module within each installed app, to
register
- # dispatcher events.
- sql_list = sql_flush(self.style, connection, only_django=True)
+ sql_list = sql_flush(self.style, connection, only_django=True)
- if interactive:
- confirm = raw_input("""You have requested a flush of the
database.
- This will IRREVERSIBLY DESTROY all data currently in the %r database,
- and return each table to the state it was in after syncdb.
- Are you sure you want to do this?
+ if interactive:
+ confirm = raw_input("""You have requested a flush of the database.
+This will IRREVERSIBLY DESTROY all data currently in the %r database,
+and return each table to the state it was in after syncdb.
+Are you sure you want to do this?
- Type 'yes' to continue, or 'no' to cancel: """ %
connection.settings_dict['NAME'])
- else:
- confirm = 'yes'
+ Type 'yes' to continue, or 'no' to cancel: """ %
connection.settings_dict['NAME'])
+ else:
+ confirm = 'yes'
- if confirm == 'yes':
- try:
- cursor = connection.cursor()
- for sql in sql_list:
- cursor.execute(sql)
- except Exception, e:
- transaction.rollback_unless_managed(using=db)
- raise CommandError("""Database %s couldn't be flushed.
Possible reasons:
- * The database isn't running or isn't configured correctly.
- * At least one of the expected database tables doesn't exist.
- * The SQL was invalid.
- Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL
this command wasn't able to run.
- The full error: %s""" % (connection.settings_dict['NAME'], e))
- transaction.commit_unless_managed(using=db)
+ if confirm == 'yes':
+ try:
+ cursor = connection.cursor()
+ for sql in sql_list:
+ cursor.execute(sql)
+ except Exception, e:
+ transaction.rollback_unless_managed(using=db)
+ raise CommandError("""Database %s couldn't be flushed.
Possible reasons:
+ * The database isn't running or isn't configured correctly.
+ * At least one of the expected database tables doesn't exist.
+ * The SQL was invalid.
+Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this
command wasn't able to run.
+The full error: %s""" % (connection.settings_dict['NAME'], e))
+ transaction.commit_unless_managed(using=db)
- # Emit the post sync signal. This allows individual
- # applications to respond as if the database had been
- # sync'd from scratch.
- emit_post_sync_signal(models.get_models(), verbosity,
interactive, db)
+ # Emit the post sync signal. This allows individual
+ # applications to respond as if the database had been
+ # sync'd from scratch.
+ emit_post_sync_signal(models.get_models(), verbosity, interactive,
db)
- # Reinstall the initial_data fixture.
- kwargs = options.copy()
- kwargs['database'] = db
- call_command('loaddata', 'initial_data', **kwargs)
+ # Reinstall the initial_data fixture.
+ kwargs = options.copy()
+ kwargs['database'] = db
+ call_command('loaddata', 'initial_data', **kwargs)
- else:
- print "Flush cancelled."
+ else:
+ print "Flush cancelled."
Modified:
django/branches/soc2009/multidb/django/core/management/commands/inspectdb.py
===================================================================
---
django/branches/soc2009/multidb/django/core/management/commands/inspectdb.py
2009-12-22 14:37:26 UTC (rev 11949)
+++
django/branches/soc2009/multidb/django/core/management/commands/inspectdb.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -23,7 +23,7 @@
raise CommandError("Database inspection isn't supported for the
currently selected database backend.")
def handle_inspection(self, options):
- connection = connections[options['database']]
+ connection = connections[options.get('database', DEFAULT_DB_ALIAS)]
table2model = lambda table_name: table_name.title().replace('_',
'').replace(' ', '').replace('-', '')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/loaddata.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/loaddata.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/loaddata.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -36,7 +36,7 @@
)
def handle(self, *fixture_labels, **options):
- using = options['database']
+ using = options.get('database', DEFAULT_DB_ALIAS)
excluded_apps = options.get('exclude', [])
connection = connections[using]
Modified:
django/branches/soc2009/multidb/django/core/management/commands/reset.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/reset.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/reset.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -20,7 +20,7 @@
output_transaction = True
def handle_app(self, app, **options):
- using = options['database']
+ using = options.get('database', DEFAULT_DB_ALIAS)
connection = connections[using]
app_name = app.__name__.split('.')[-2]
Modified: django/branches/soc2009/multidb/django/core/management/commands/sql.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/sql.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/sql.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,4 +16,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_create(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_create(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlall.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/sqlall.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/sqlall.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,4 +16,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_all(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_all(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlclear.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/sqlclear.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/sqlclear.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,4 +16,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_delete(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_delete(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlcustom.py
===================================================================
---
django/branches/soc2009/multidb/django/core/management/commands/sqlcustom.py
2009-12-22 14:37:26 UTC (rev 11949)
+++
django/branches/soc2009/multidb/django/core/management/commands/sqlcustom.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,4 +16,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_custom(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_custom(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlflush.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/sqlflush.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/sqlflush.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,4 +16,4 @@
output_transaction = True
def handle_noargs(self, **options):
- return u'\n'.join(sql_flush(self.style,
connections[options['database']], only_django=True)).encode('utf-8')
+ return u'\n'.join(sql_flush(self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)],
only_django=True)).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlindexes.py
===================================================================
---
django/branches/soc2009/multidb/django/core/management/commands/sqlindexes.py
2009-12-22 14:37:26 UTC (rev 11949)
+++
django/branches/soc2009/multidb/django/core/management/commands/sqlindexes.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -17,4 +17,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_indexes(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_indexes(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlreset.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/sqlreset.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/sqlreset.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -17,4 +17,4 @@
output_transaction = True
def handle_app(self, app, **options):
- return u'\n'.join(sql_reset(app, self.style,
connections[options['database']])).encode('utf-8')
+ return u'\n'.join(sql_reset(app, self.style,
connections[options.get('database', DEFAULT_DB_ALIAS)])).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/sqlsequencereset.py
===================================================================
---
django/branches/soc2009/multidb/django/core/management/commands/sqlsequencereset.py
2009-12-22 14:37:26 UTC (rev 11949)
+++
django/branches/soc2009/multidb/django/core/management/commands/sqlsequencereset.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -16,5 +16,5 @@
output_transaction = True
def handle_app(self, app, **options):
- connection = connections[options['database']]
+ connection = connections[options.get('database', DEFAULT_DB_ALIAS)]
return u'\n'.join(connection.ops.sequence_reset_sql(self.style,
models.get_models(app))).encode('utf-8')
Modified:
django/branches/soc2009/multidb/django/core/management/commands/syncdb.py
===================================================================
--- django/branches/soc2009/multidb/django/core/management/commands/syncdb.py
2009-12-22 14:37:26 UTC (rev 11949)
+++ django/branches/soc2009/multidb/django/core/management/commands/syncdb.py
2009-12-22 14:37:40 UTC (rev 11950)
@@ -49,7 +49,7 @@
if not msg.startswith('No module named') or 'management' not
in msg:
raise
- db = options['database']
+ db = options.get('database', DEFAULT_DB_ALIAS)
connection = connections[db]
cursor = connection.cursor()
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.