From 77067f18d505652ec9609053fa9a01c17b792c56 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 27 May 2022 15:08:28 +0800 Subject: [PATCH] stash tdsql MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pref: 测试完成 perf: 修改支持 tdsql 5.7 revert: 欢迎之前的内容 revert: some perf: 修改 tdsql pref: 修改 。 --- apps/jumpserver/rewriting/__init__.py | 2 + apps/jumpserver/rewriting/db.py | 35 ++++++++ ...8_0025_squashed_0009_auto_20180903_1132.py | 35 -------- .../migrations/0008_auto_20190911_1907.py | 15 ---- ...8_0025_squashed_0009_auto_20180326_0957.py | 84 ------------------- 5 files changed, 37 insertions(+), 134 deletions(-) create mode 100644 apps/jumpserver/rewriting/db.py delete mode 100644 apps/terminal/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180326_0957.py diff --git a/apps/jumpserver/rewriting/__init__.py b/apps/jumpserver/rewriting/__init__.py index e69de29bb..72949abe2 100644 --- a/apps/jumpserver/rewriting/__init__.py +++ b/apps/jumpserver/rewriting/__init__.py @@ -0,0 +1,2 @@ +from . import db + diff --git a/apps/jumpserver/rewriting/db.py b/apps/jumpserver/rewriting/db.py new file mode 100644 index 000000000..6bc1b157b --- /dev/null +++ b/apps/jumpserver/rewriting/db.py @@ -0,0 +1,35 @@ +import os +import sys + +from django.db import models, transaction +from django.db.transaction import atomic as db_atomic + + +class ForeignKey(models.ForeignKey): + def __init__(self, *args, **kwargs): + kwargs['db_constraint'] = False + super().__init__(*args, **kwargs) + + +def atomic(using=None, savepoint=False): + return db_atomic(using=using, savepoint=savepoint) + + +class OneToOneField(models.OneToOneField): + def __init__(self, *args, **kwargs): + kwargs['db_constraint'] = False + super().__init__(*args, **kwargs) + + +def set_db_constraint(): + if os.getenv('DB_CONSTRAINT', '1') != '0': + return + if sys.argv == 2 and sys.argv[1] == 'makemigrations': + return + print("Set foreignkey db constraint False") + transaction.atomic = atomic + models.ForeignKey = ForeignKey + models.OneToOneField = OneToOneField + + +set_db_constraint() diff --git a/apps/perms/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180903_1132.py b/apps/perms/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180903_1132.py index cc0a646e5..f7f191f4a 100644 --- a/apps/perms/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180903_1132.py +++ b/apps/perms/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180903_1132.py @@ -68,27 +68,6 @@ class Migration(migrations.Migration): name='users', field=models.ManyToManyField(blank=True, related_name='asset_permissions', to=settings.AUTH_USER_MODEL, verbose_name='User'), ), - migrations.CreateModel( - name='NodePermission', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), - ('is_active', models.BooleanField(default=True, verbose_name='Active')), - ('date_expired', models.DateTimeField(default=common.utils.django.date_expired_default, verbose_name='Date expired')), - ('created_by', models.CharField(blank=True, max_length=128, verbose_name='Created by')), - ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), - ('comment', models.TextField(blank=True, verbose_name='Comment')), - ('node', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.Node', verbose_name='Node')), - ('system_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.SystemUser', verbose_name='System user')), - ('user_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.UserGroup', verbose_name='User group')), - ], - options={ - 'verbose_name': 'Asset permission', - }, - ), - migrations.AlterUniqueTogether( - name='nodepermission', - unique_together={('node', 'user_group', 'system_user')}, - ), migrations.RemoveField( model_name='assetpermission', name='asset_groups', @@ -124,11 +103,6 @@ class Migration(migrations.Migration): name='org_id', field=models.CharField(blank=True, default=None, max_length=36, null=True), ), - migrations.AddField( - model_name='nodepermission', - name='org_id', - field=models.CharField(blank=True, default=None, max_length=36, null=True), - ), migrations.AlterField( model_name='assetpermission', name='name', @@ -138,20 +112,11 @@ class Migration(migrations.Migration): name='assetpermission', unique_together={('org_id', 'name')}, ), - migrations.AlterUniqueTogether( - name='nodepermission', - unique_together=set(), - ), migrations.AlterField( model_name='assetpermission', name='org_id', field=models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization'), ), - migrations.AlterField( - model_name='nodepermission', - name='org_id', - field=models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization'), - ), migrations.AlterModelOptions( name='assetpermission', options={'verbose_name': 'Asset permission'}, diff --git a/apps/perms/migrations/0008_auto_20190911_1907.py b/apps/perms/migrations/0008_auto_20190911_1907.py index b15a05c6c..b7b5b5776 100644 --- a/apps/perms/migrations/0008_auto_20190911_1907.py +++ b/apps/perms/migrations/0008_auto_20190911_1907.py @@ -10,23 +10,8 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RemoveField( - model_name='nodepermission', - name='node', - ), - migrations.RemoveField( - model_name='nodepermission', - name='system_user', - ), - migrations.RemoveField( - model_name='nodepermission', - name='user_group', - ), migrations.AlterModelOptions( name='assetpermission', options={'ordering': ('name',), 'verbose_name': 'Asset permission'}, ), - migrations.DeleteModel( - name='NodePermission', - ), ] diff --git a/apps/terminal/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180326_0957.py b/apps/terminal/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180326_0957.py deleted file mode 100644 index e0e7cc8dc..000000000 --- a/apps/terminal/migrations/0002_auto_20171228_0025_squashed_0009_auto_20180326_0957.py +++ /dev/null @@ -1,84 +0,0 @@ -# Generated by Django 2.1.7 on 2019-02-28 10:23 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - replaces = [('terminal', '0002_auto_20171228_0025'), ('terminal', '0003_auto_20171230_0308'), ('terminal', '0004_session_remote_addr'), ('terminal', '0005_auto_20180122_1154'), ('terminal', '0006_auto_20180123_1037'), ('terminal', '0007_session_date_last_active'), ('terminal', '0008_auto_20180307_1603'), ('terminal', '0009_auto_20180326_0957')] - - dependencies = [ - ('terminal', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='session', - name='terminal', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='terminal.Terminal'), - ), - migrations.AddField( - model_name='status', - name='terminal', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='terminal.Terminal'), - ), - migrations.AddField( - model_name='task', - name='terminal', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='terminal.Terminal'), - ), - migrations.AddField( - model_name='terminal', - name='user', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='terminal', to=settings.AUTH_USER_MODEL, verbose_name='Application User'), - ), - migrations.AlterField( - model_name='terminal', - name='name', - field=models.CharField(max_length=32, verbose_name='Name'), - ), - migrations.AlterField( - model_name='command', - name='asset', - field=models.CharField(db_index=True, max_length=128, verbose_name='Asset'), - ), - migrations.AlterField( - model_name='command', - name='system_user', - field=models.CharField(db_index=True, max_length=64, verbose_name='System user'), - ), - migrations.AlterField( - model_name='command', - name='user', - field=models.CharField(db_index=True, max_length=64, verbose_name='User'), - ), - migrations.AddField( - model_name='session', - name='remote_addr', - field=models.CharField(blank=True, max_length=15, null=True, verbose_name='Remote addr'), - ), - migrations.AddField( - model_name='terminal', - name='command_storage', - field=models.CharField(default='default', max_length=128, verbose_name='Command storage'), - ), - migrations.AddField( - model_name='terminal', - name='replay_storage', - field=models.CharField(default='default', max_length=128, verbose_name='Replay storage'), - ), - migrations.AddField( - model_name='session', - name='date_last_active', - field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date last active'), - ), - migrations.AlterField( - model_name='session', - name='date_start', - field=models.DateTimeField(db_index=True, verbose_name='Date start'), - ), - ]