mirror of
https://github.com/Hopiu/django-cachalot.git
synced 2026-05-26 13:03:58 +00:00
* Fix tox.ini and use exclude for ci.yml * runtests_urls.py had an issue from using pre-Django 2.2 import of urls * tox.ini forgot to remove 3.7 from Django 4.0 env * Use re_path * Avoid system error in Django test * Fix read/test_union.py * Test assertion error for read/test_union * Fix remaining read/test_intersection test * Bump version
110 lines
4.5 KiB
Python
110 lines
4.5 KiB
Python
from django import VERSION as DJANGO_VERSION
|
|
from django.conf import settings
|
|
from django.contrib.postgres.fields import (
|
|
ArrayField, HStoreField, IntegerRangeField,
|
|
DateRangeField, DateTimeRangeField)
|
|
from django.contrib.postgres.operations import (
|
|
HStoreExtension, UnaccentExtension)
|
|
from django.db import models, migrations
|
|
|
|
|
|
def extra_regular_available_fields():
|
|
fields = []
|
|
try:
|
|
from django.db.models import JSONField
|
|
fields.append(('json', JSONField(null=True, blank=True)))
|
|
except ImportError:
|
|
pass
|
|
|
|
return fields
|
|
|
|
|
|
def extra_postgres_available_fields():
|
|
fields = []
|
|
try:
|
|
# TODO Remove when Dj31 support is dropped
|
|
from django.contrib.postgres.fields import FloatRangeField
|
|
fields.append(('float_range', FloatRangeField(null=True, blank=True)))
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
# TODO Add to module import when Dj31 is dropped
|
|
from django.contrib.postgres.fields import DecimalRangeField
|
|
fields.append(('decimal_range', DecimalRangeField(null=True, blank=True)))
|
|
except ImportError:
|
|
pass
|
|
|
|
# Future proofing with Django 40 deprecation
|
|
if DJANGO_VERSION[0] < 4:
|
|
# TODO Remove when Dj40 support is dropped
|
|
from django.contrib.postgres.fields import JSONField
|
|
fields.append(('json', JSONField(null=True, blank=True)))
|
|
|
|
return fields
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('auth', '0001_initial'),
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Test',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('name', models.CharField(max_length=20)),
|
|
('public', models.BooleanField(default=False)),
|
|
('date', models.DateField(null=True, blank=True)),
|
|
('datetime', models.DateTimeField(null=True, blank=True)),
|
|
('owner', models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL)),
|
|
('permission', models.ForeignKey(blank=True, to='auth.Permission', null=True, on_delete=models.PROTECT)),
|
|
('a_float', models.FloatField(null=True, blank=True)),
|
|
('a_decimal', models.DecimalField(null=True, blank=True, max_digits=5, decimal_places=2)),
|
|
('bin', models.BinaryField(null=True, blank=True)),
|
|
('ip', models.GenericIPAddressField(null=True, blank=True)),
|
|
('duration', models.DurationField(null=True, blank=True)),
|
|
('uuid', models.UUIDField(null=True, blank=True)),
|
|
] + extra_regular_available_fields(),
|
|
options={
|
|
'ordering': ('name',),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='TestParent',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('name', models.CharField(max_length=20)),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='TestChild',
|
|
fields=[
|
|
('testparent_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='cachalot.TestParent', on_delete=models.CASCADE)),
|
|
('public', models.BooleanField(default=False)),
|
|
('permissions', models.ManyToManyField('auth.Permission', blank=True))
|
|
],
|
|
bases=('cachalot.testparent',),
|
|
),
|
|
HStoreExtension(),
|
|
UnaccentExtension(),
|
|
migrations.CreateModel(
|
|
name='PostgresModel',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False,
|
|
auto_created=True, primary_key=True)),
|
|
('int_array', ArrayField(
|
|
models.IntegerField(null=True, blank=True), size=3,
|
|
null=True, blank=True)),
|
|
('hstore', HStoreField(null=True, blank=True)),
|
|
('int_range', IntegerRangeField(null=True, blank=True)),
|
|
('date_range', DateRangeField(null=True, blank=True)),
|
|
('datetime_range', DateTimeRangeField(null=True, blank=True)),
|
|
] + extra_postgres_available_fields(),
|
|
),
|
|
migrations.RunSQL('CREATE TABLE cachalot_unmanagedmodel '
|
|
'(id SERIAL PRIMARY KEY, name VARCHAR(50));'),
|
|
]
|