Skip to content

Commit c014117

Browse files
jpaniagualaconichclaudep
authored andcommitted
Avoid hard dependency on phonenumbers in migrations
Refs #469.
1 parent 227bb96 commit c014117

File tree

2 files changed

+30
-19
lines changed

2 files changed

+30
-19
lines changed

two_factor/migrations/0003_auto_20150817_1733.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import logging
22

3-
import phonenumbers
3+
from django.apps import apps
44
from django.db import migrations
5-
from phonenumber_field.modelfields import PhoneNumberField
65

76
logger = logging.getLogger(__name__)
87

98

109
def migrate_phone_numbers(apps, schema_editor):
10+
import phonenumbers
11+
1112
PhoneDevice = apps.get_model("two_factor", "PhoneDevice")
1213
for device in PhoneDevice.objects.all():
1314
try:
@@ -29,11 +30,17 @@ class Migration(migrations.Migration):
2930
('two_factor', '0002_auto_20150110_0810'),
3031
]
3132

32-
operations = [
33-
migrations.RunPython(migrate_phone_numbers, reverse_code=migrations.RunPython.noop),
34-
migrations.AlterField(
35-
model_name='phonedevice',
36-
name='number',
37-
field=PhoneNumberField(max_length=16, verbose_name='number'),
38-
),
39-
]
33+
if apps.is_installed('two_factor.plugins.phonenumber'):
34+
from phonenumber_field.modelfields import PhoneNumberField
35+
36+
operations = [
37+
migrations.RunPython(migrate_phone_numbers, reverse_code=migrations.RunPython.noop),
38+
migrations.AlterField(
39+
model_name='phonedevice',
40+
name='number',
41+
field=PhoneNumberField(max_length=16, verbose_name='number'),
42+
),
43+
]
44+
45+
else:
46+
operations = []
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Generated by Django 1.9.2 on 2016-02-05 17:27
2-
3-
import phonenumber_field.modelfields
2+
from django.apps import apps
43
from django.db import migrations
54

65

@@ -10,10 +9,15 @@ class Migration(migrations.Migration):
109
('two_factor', '0003_auto_20150817_1733'),
1110
]
1211

13-
operations = [
14-
migrations.AlterField(
15-
model_name='phonedevice',
16-
name='number',
17-
field=phonenumber_field.modelfields.PhoneNumberField(max_length=128),
18-
),
19-
]
12+
if apps.is_installed('two_factor.plugins.phonenumber'):
13+
import phonenumber_field.modelfields
14+
15+
operations = [
16+
migrations.AlterField(
17+
model_name='phonedevice',
18+
name='number',
19+
field=phonenumber_field.modelfields.PhoneNumberField(max_length=128),
20+
),
21+
]
22+
else:
23+
operations = []

0 commit comments

Comments
 (0)