Loading AUTHORS +1 −0 Original line number Diff line number Diff line Loading @@ -373,6 +373,7 @@ answer newbie questions, and generally made Django that much better: Jordan Dimov <s3x3y1@gmail.com> Jorge Bastida <me@jorgebastida.com> Jorge Gajon <gajon@gajon.org> José Tomás Tocino García <josetomas.tocino@gmail.com> Joseph Kocherhans <joseph@jkocherhans.com> Josh Smeaton <josh.smeaton@gmail.com> Joshua Ginsberg <jag@flowtheory.net> Loading django/core/management/commands/inspectdb.py +5 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ class Command(BaseCommand): db_module = 'django.db' def add_arguments(self, parser): parser.add_argument('table', action='store', nargs='*', type=str, help='Selects what tables or views should be introspected.') parser.add_argument('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a database to ' 'introspect. Defaults to using the "default" database.') Loading Loading @@ -54,7 +56,9 @@ class Command(BaseCommand): yield '' yield 'from %s import models' % self.db_module known_models = [] for table_name in connection.introspection.table_names(cursor): tables_to_introspect = options['table'] or connection.introspection.table_names(cursor) for table_name in tables_to_introspect: if table_name_filter is not None and callable(table_name_filter): if not table_name_filter(table_name): continue Loading docs/ref/django-admin.txt +8 −2 Original line number Diff line number Diff line Loading @@ -354,11 +354,12 @@ Specifies the database to flush. Defaults to ``default``. ``inspectdb`` ------------- .. django-admin:: inspectdb .. django-admin:: inspectdb [table [table ...]] Introspects the database tables in the database pointed-to by the :setting:`NAME` setting and outputs a Django model module (a ``models.py`` file) to standard output. file) to standard output. You may choose what tables to inspect by passing their names as arguments. Use this if you have a legacy database with which you'd like to use Django. The script will inspect the database and create a model for each table within Loading Loading @@ -406,6 +407,11 @@ table's lifecycle, you'll need to change the :attr:`~django.db.models.Options.managed` option to ``True`` (or simply remove it because ``True`` is its default value). .. versionadded:: 1.10 Support for the ``table`` argument(s) to choose what tables should be inspected was added. .. django-admin-option:: --database DATABASE Specifies the database to introspect. Defaults to ``default``. Loading docs/releases/1.10.txt +3 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,9 @@ Management Commands * The :djadmin:`shell` command supports tab completion on systems using ``libedit``, e.g. Mac OSX. * The :djadmin:`inspectdb` command lets you choose what tables should be inspected by specifying their names as arguments. Migrations ~~~~~~~~~~ Loading tests/inspectdb/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,17 @@ class InspectDBTestCase(TestCase): # inspected self.assertNotIn("class DjangoContentType(models.Model):", out.getvalue(), msg=error_message) def test_table_option(self): """ inspectdb can inspect a subset of tables by passing the table names as arguments. """ out = StringIO() call_command('inspectdb', 'inspectdb_people', stdout=out) output = out.getvalue() self.assertIn('class InspectdbPeople(models.Model):', output) self.assertNotIn("InspectdbPeopledata", output) def make_field_type_asserter(self): """Call inspectdb and return a function to validate a field type in its output""" out = StringIO() Loading Loading
AUTHORS +1 −0 Original line number Diff line number Diff line Loading @@ -373,6 +373,7 @@ answer newbie questions, and generally made Django that much better: Jordan Dimov <s3x3y1@gmail.com> Jorge Bastida <me@jorgebastida.com> Jorge Gajon <gajon@gajon.org> José Tomás Tocino García <josetomas.tocino@gmail.com> Joseph Kocherhans <joseph@jkocherhans.com> Josh Smeaton <josh.smeaton@gmail.com> Joshua Ginsberg <jag@flowtheory.net> Loading
django/core/management/commands/inspectdb.py +5 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ class Command(BaseCommand): db_module = 'django.db' def add_arguments(self, parser): parser.add_argument('table', action='store', nargs='*', type=str, help='Selects what tables or views should be introspected.') parser.add_argument('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a database to ' 'introspect. Defaults to using the "default" database.') Loading Loading @@ -54,7 +56,9 @@ class Command(BaseCommand): yield '' yield 'from %s import models' % self.db_module known_models = [] for table_name in connection.introspection.table_names(cursor): tables_to_introspect = options['table'] or connection.introspection.table_names(cursor) for table_name in tables_to_introspect: if table_name_filter is not None and callable(table_name_filter): if not table_name_filter(table_name): continue Loading
docs/ref/django-admin.txt +8 −2 Original line number Diff line number Diff line Loading @@ -354,11 +354,12 @@ Specifies the database to flush. Defaults to ``default``. ``inspectdb`` ------------- .. django-admin:: inspectdb .. django-admin:: inspectdb [table [table ...]] Introspects the database tables in the database pointed-to by the :setting:`NAME` setting and outputs a Django model module (a ``models.py`` file) to standard output. file) to standard output. You may choose what tables to inspect by passing their names as arguments. Use this if you have a legacy database with which you'd like to use Django. The script will inspect the database and create a model for each table within Loading Loading @@ -406,6 +407,11 @@ table's lifecycle, you'll need to change the :attr:`~django.db.models.Options.managed` option to ``True`` (or simply remove it because ``True`` is its default value). .. versionadded:: 1.10 Support for the ``table`` argument(s) to choose what tables should be inspected was added. .. django-admin-option:: --database DATABASE Specifies the database to introspect. Defaults to ``default``. Loading
docs/releases/1.10.txt +3 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,9 @@ Management Commands * The :djadmin:`shell` command supports tab completion on systems using ``libedit``, e.g. Mac OSX. * The :djadmin:`inspectdb` command lets you choose what tables should be inspected by specifying their names as arguments. Migrations ~~~~~~~~~~ Loading
tests/inspectdb/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,17 @@ class InspectDBTestCase(TestCase): # inspected self.assertNotIn("class DjangoContentType(models.Model):", out.getvalue(), msg=error_message) def test_table_option(self): """ inspectdb can inspect a subset of tables by passing the table names as arguments. """ out = StringIO() call_command('inspectdb', 'inspectdb_people', stdout=out) output = out.getvalue() self.assertIn('class InspectdbPeople(models.Model):', output) self.assertNotIn("InspectdbPeopledata", output) def make_field_type_asserter(self): """Call inspectdb and return a function to validate a field type in its output""" out = StringIO() Loading