diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2014-06-17 09:54:39 -0700 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2014-06-17 09:54:39 -0700 |
| commit | 66a99fa21076529a5e71996a8862597284403727 (patch) | |
| tree | e93a2688267d1dbcc062ad3aecb9703bef98e8e6 | |
| parent | 95cc0e15b45dd0986bdfd9fa3fedee4550c744c8 (diff) | |
| parent | 3a6cb9f497af4e5eb8351706056eae50a4ed3c45 (diff) | |
Merge pull request #2824 from valberg/22577
Fixed #22577: Python 3 broke on non-module migrations directory
| -rw-r--r-- | django/db/migrations/writer.py | 6 | ||||
| -rw-r--r-- | tests/migrations/migrations_test_apps/without_init_file/migrations/.keep | 0 | ||||
| -rw-r--r-- | tests/migrations/test_writer.py | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index dee867929d..71f81e9e2d 100644 --- a/django/db/migrations/writer.py +++ b/django/db/migrations/writer.py @@ -158,6 +158,12 @@ class MigrationWriter(object): # See if we can import the migrations module directly try: migrations_module = import_module(migrations_package_name) + + # Python 3 fails when the migrations directory does not have a + # __init__.py file + if not hasattr(migrations_module, '__file__'): + raise ImportError + basedir = os.path.dirname(migrations_module.__file__) except ImportError: app_config = apps.get_app_config(self.migration.app_label) diff --git a/tests/migrations/migrations_test_apps/without_init_file/migrations/.keep b/tests/migrations/migrations_test_apps/without_init_file/migrations/.keep new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/migrations/migrations_test_apps/without_init_file/migrations/.keep diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py index cd59938314..8f8437faf9 100644 --- a/tests/migrations/test_writer.py +++ b/tests/migrations/test_writer.py @@ -215,6 +215,7 @@ class WriterTests(TestCase): test_apps = [ 'migrations.migrations_test_apps.normal', 'migrations.migrations_test_apps.with_package_model', + 'migrations.migrations_test_apps.without_init_file', ] base_dir = os.path.dirname(os.path.dirname(__file__)) |
