Added ability to use --noinput flag for application reset.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3888 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
bf6257f1ee
commit
b5a7122408
|
@ -103,7 +103,6 @@ def get_sql_create(app):
|
||||||
known_models = set([model for model in _get_installed_models(_get_table_list()) if model not in app_models])
|
known_models = set([model for model in _get_installed_models(_get_table_list()) if model not in app_models])
|
||||||
pending_references = {}
|
pending_references = {}
|
||||||
|
|
||||||
|
|
||||||
for model in app_models:
|
for model in app_models:
|
||||||
output, references = _get_sql_model_create(model, known_models)
|
output, references = _get_sql_model_create(model, known_models)
|
||||||
final_output.extend(output)
|
final_output.extend(output)
|
||||||
|
@ -596,7 +595,7 @@ The full error: """ % (app_name, app_name)) + style.ERROR_OUTPUT(str(e)) + '\n')
|
||||||
install.help_doc = "Executes ``sqlall`` for the given app(s) in the current database."
|
install.help_doc = "Executes ``sqlall`` for the given app(s) in the current database."
|
||||||
install.args = APP_ARGS
|
install.args = APP_ARGS
|
||||||
|
|
||||||
def reset(app):
|
def reset(app, interactive=True):
|
||||||
"Executes the equivalent of 'get_sql_reset' in the current database."
|
"Executes the equivalent of 'get_sql_reset' in the current database."
|
||||||
from django.db import connection, transaction
|
from django.db import connection, transaction
|
||||||
app_name = app.__name__.split('.')[-2]
|
app_name = app.__name__.split('.')[-2]
|
||||||
|
@ -607,21 +606,25 @@ def reset(app):
|
||||||
_check_for_validation_errors(app)
|
_check_for_validation_errors(app)
|
||||||
sql_list = get_sql_reset(app)
|
sql_list = get_sql_reset(app)
|
||||||
|
|
||||||
|
if interactive:
|
||||||
confirm = raw_input("""
|
confirm = raw_input("""
|
||||||
You have requested a database reset.
|
You have requested a database reset.
|
||||||
This will IRREVERSIBLY DESTROY any data in your database.
|
This will IRREVERSIBLY DESTROY any data in your database.
|
||||||
Are you sure you want to do this?
|
Are you sure you want to do this?
|
||||||
|
|
||||||
Type 'yes' to continue, or 'no' to cancel: """)
|
Type 'yes' to continue, or 'no' to cancel: """)
|
||||||
|
else:
|
||||||
|
confirm = 'yes'
|
||||||
|
|
||||||
if confirm == 'yes':
|
if confirm == 'yes':
|
||||||
try:
|
try:
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
for sql in sql_list:
|
for sql in sql_list:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
sys.stderr.write(style.ERROR("""Error: %s couldn't be installed. Possible reasons:
|
sys.stderr.write(style.ERROR("""Error: %s couldn't be reset. Possible reasons:
|
||||||
* The database isn't running or isn't configured correctly.
|
* The database isn't running or isn't configured correctly.
|
||||||
* At least one of the database tables already exists.
|
* At least one of the database tables doesn't exist.
|
||||||
* The SQL was invalid.
|
* The SQL was invalid.
|
||||||
Hint: Look at the output of 'django-admin.py sqlreset %s'. That's the SQL this command wasn't able to run.
|
Hint: Look at the output of 'django-admin.py sqlreset %s'. That's the SQL this command wasn't able to run.
|
||||||
The full error: """ % (app_name, app_name)) + style.ERROR_OUTPUT(str(e)) + '\n')
|
The full error: """ % (app_name, app_name)) + style.ERROR_OUTPUT(str(e)) + '\n')
|
||||||
|
@ -1361,6 +1364,9 @@ def execute_from_command_line(action_mapping=DEFAULT_ACTION_MAPPING, argv=None):
|
||||||
if action not in NO_SQL_TRANSACTION:
|
if action not in NO_SQL_TRANSACTION:
|
||||||
print style.SQL_KEYWORD("BEGIN;")
|
print style.SQL_KEYWORD("BEGIN;")
|
||||||
for mod in mod_list:
|
for mod in mod_list:
|
||||||
|
if action == 'reset':
|
||||||
|
output = action_mapping[action](mod, options.interactive)
|
||||||
|
else:
|
||||||
output = action_mapping[action](mod)
|
output = action_mapping[action](mod)
|
||||||
if output:
|
if output:
|
||||||
print '\n'.join(output)
|
print '\n'.join(output)
|
||||||
|
|
Loading…
Reference in New Issue