summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2013-02-02 21:08:45 -0300
committerRamiro Morales <cramm0@gmail.com>2013-02-02 21:11:32 -0300
commit08dc90bccf7c4ffa8b04064d74b54c1150af5ff9 (patch)
tree4404e8e0a61a2742bc779773c1ad21703c1a6207 /docs
parentc9c40bc6bc64e67365338751e4967d86d0882abf (diff)
Fixed #14305 -- Switched inspectdb to create unmanaged models.
Thanks Ian Kelly for the report and initial patch.
Diffstat (limited to 'docs')
-rw-r--r--docs/howto/legacy-databases.txt29
-rw-r--r--docs/ref/django-admin.txt15
2 files changed, 44 insertions, 0 deletions
diff --git a/docs/howto/legacy-databases.txt b/docs/howto/legacy-databases.txt
index 3e75ef1e5f..67bce7e976 100644
--- a/docs/howto/legacy-databases.txt
+++ b/docs/howto/legacy-databases.txt
@@ -49,6 +49,35 @@ Once you've cleaned up your models, name the file ``models.py`` and put it in
the Python package that holds your app. Then add the app to your
:setting:`INSTALLED_APPS` setting.
+If your plan is that your Django application(s) modify data (i.e. edit, remove
+records and create new ones) in the existing database tables corresponding to
+any of the introspected models then one of the manual review and edit steps
+you need to perform on the resulting ``models.py`` file is to change the
+Python declaration of each one of these models to specify it is a
+:attr:`managed <django.db.models.Options.managed>` one. For example, consider
+this generated model definition:
+
+.. parsed-literal::
+
+ class Person(models.Model):
+ id = models.IntegerField(primary_key=True)
+ first_name = models.ChaField(max_length=70)
+ class Meta:
+ **managed = False**
+ db_table = 'CENSUS_PERSONS'
+
+If you wanted to modify existing data on your ``CENSUS_PERSONS`` SQL table
+with Django you'd need to change the ``managed`` option highlighted above to
+``True`` (or simply remove it to let it because ``True`` is its default value).
+
+This servers as an explicit opt-in to give your nascent Django project write
+access to your precious data on a model by model basis.
+
+.. versionchanged:: 1.6
+
+The behavior by which introspected models are created as unmanaged ones is new
+in Django 1.6.
+
Install the core Django tables
==============================
diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
index 8f6664edb7..4074495b9a 100644
--- a/docs/ref/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -288,9 +288,24 @@ needed.
``inspectdb`` works with PostgreSQL, MySQL and SQLite. Foreign-key detection
only works in PostgreSQL and with certain types of MySQL tables.
+If your plan is that your Django application(s) modify data (i.e. edit, remove
+records and create new ones) in the existing database tables corresponding to
+any of the introspected models then one of the manual review and edit steps
+you need to perform on the resulting ``models.py`` file is to change the
+Python declaration of each one of these models to specify it is a
+:attr:`managed <django.db.models.Options.managed>` one.
+
+This servers as an explicit opt-in to give your nascent Django project write
+access to your precious data on a model by model basis.
+
The :djadminopt:`--database` option may be used to specify the
database to introspect.
+.. versionchanged:: 1.6
+
+The behavior by which introspected models are created as unmanaged ones is new
+in Django 1.6.
+
loaddata <fixture fixture ...>
------------------------------