From 5563073bf3e6964cc36e4dec29f2eb4c6536eeb0 Mon Sep 17 00:00:00 2001 From: Abdullah Adeel Date: Fri, 21 Jan 2022 12:51:02 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=A6=88=20mysql=208=20support=20-=20?= =?UTF-8?q?=F0=9F=A7=AA=20update=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cookiecutter.json | 2 ++ tests/test_cookiecutter_generation.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/cookiecutter.json b/cookiecutter.json index f875da48e..2a3c168db 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -24,6 +24,8 @@ "postgresql@12.9", "postgresql@11.14", "postgresql@10.19", + "mysql@8.0.28", + "mysql@8.0", "mysql@5.7" ], "__processed_database_engine": "{{ cookiecutter.database_version.lower()|split('@')[0] }}", diff --git a/tests/test_cookiecutter_generation.py b/tests/test_cookiecutter_generation.py index 1d7048395..8386fedec 100755 --- a/tests/test_cookiecutter_generation.py +++ b/tests/test_cookiecutter_generation.py @@ -52,6 +52,8 @@ SUPPORTED_COMBINATIONS = [ {"database_engine": "postgresql", "database_version": "postgresql@12.9"}, {"database_engine": "postgresql", "database_version": "postgresql@11.14"}, {"database_engine": "postgresql", "database_version": "postgresql@10.1 9"}, + {"database_engine": "mysql", "database_version": "mysql@8.0.28"}, + {"database_engine": "mysql", "database_version": "mysql@8.0"}, {"database_engine": "mysql", "database_version": "mysql@5.7"}, {"cloud_provider": "AWS", "use_whitenoise": "y"}, {"cloud_provider": "AWS", "use_whitenoise": "n"}, @@ -118,6 +120,8 @@ UNSUPPORTED_COMBINATIONS = [ {"cloud_provider": "None", "use_whitenoise": "n"}, {"cloud_provider": "GCP", "mail_service": "Amazon SES"}, {"cloud_provider": "None", "mail_service": "Amazon SES"}, + {"database_engine": "postgresql", "database_version": "mysql@8.0.28"}, + {"database_engine": "postgresql", "database_version": "mysql@8.0"}, {"database_engine": "postgresql", "database_version": "mysql@5.7"}, {"database_engine": "mysql", "database_version": "postgresql@14.1"}, {"database_engine": "mysql", "database_version": "postgresql@13.5"}, From b1e86eec17c785d677adb1be831aa5bdf0c59bbc Mon Sep 17 00:00:00 2001 From: Abdullah Adeel Date: Fri, 21 Jan 2022 15:19:19 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=94=A7=20updated=20migrations=20scrip?= =?UTF-8?q?ts=20to=20support=20mysql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sites/migrations/0003_set_site_domain_and_name.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py index 080c734bb..b0eaff52b 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py @@ -25,6 +25,7 @@ def _update_or_create_site_with_sequence(site_model, connection, domain, name): # greater than the maximum value. max_id = site_model.objects.order_by('-id').first().id with connection.cursor() as cursor: + {% if cookiecutter.database_engine == 'postgresql' -%} cursor.execute("SELECT last_value from django_site_id_seq") (current_id,) = cursor.fetchone() if current_id <= max_id: @@ -32,6 +33,15 @@ def _update_or_create_site_with_sequence(site_model, connection, domain, name): "alter sequence django_site_id_seq restart with %s", [max_id + 1], ) + {% elif cookiecutter.database_engine == 'mysql' -%} + cursor.execute("SELECT MAX(id) FROM django_site") + (current_id,) = cursor.fetchone() + if current_id <= max_id: + cursor.execute( + "ALTER TABLE django_site AUTO_INCREMENT=%s", + [max_id + 1], + ) + {% endif -%} def update_site_forward(apps, schema_editor): From 0ad833eedbf51740fe134f1211a31f8fef3fb649 Mon Sep 17 00:00:00 2001 From: Abdullah Adeel Date: Fri, 21 Jan 2022 15:54:59 +0500 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=94=A7=20updated=20`ci.yml`=20-=20inc?= =?UTF-8?q?lude=20multi=20database=20options=20for=20proj=20creation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0180184fa..fb88f3334 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,9 +44,9 @@ jobs: matrix: script: - name: Basic - args: "" + args: "database_engine=postgresql database_version=postgresql@14.1" - name: Extended - args: "use_celery=y use_drf=y js_task_runner=Gulp" + args: "use_celery=y use_drf=y js_task_runner=Gulp database_engine=postgresql database_version=postgresql@14.1" name: "${{ matrix.script.name }} Docker" runs-on: ubuntu-latest @@ -71,9 +71,12 @@ jobs: matrix: script: - name: With Celery - args: "use_celery=y use_compressor=y" + args: "use_celery=y use_compressor=y database_engine=postgresql database_version=postgresql@14.1" + # postgres://user:password@host:port/database + database_url: "postgres://postgres:postgres@localhost:5432/postgres" - name: With Gulp - args: "js_task_runner=Gulp custom_bootstrap_compilation=y" + args: "js_task_runner=Gulp custom_bootstrap_compilation=y database_engine=postgresql database_version=postgresql@14.1" + database_url: "postgres://postgres:postgres@localhost:5432/postgres" runs-on: ubuntu-latest name: "${{ matrix.script.name }} Bare metal" @@ -91,8 +94,7 @@ jobs: env: CELERY_BROKER_URL: "redis://localhost:6379/0" - # postgres://user:password@host:port/database - DATABASE_URL: "postgres://postgres:postgres@localhost:5432/postgres" + DATABASE_URL: ${{ matrix.script.database_url }} steps: - uses: actions/checkout@v2 From bb60df15fb4123dc2ea22a7bc5fc6de5a5429aec Mon Sep 17 00:00:00 2001 From: Abdullah Adeel Date: Fri, 21 Jan 2022 16:16:41 +0500 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=90=9B=20fix=20cookiecutter=20not=20g?= =?UTF-8?q?enerating=20proper=20template=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sites/migrations/0003_set_site_domain_and_name.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py index b0eaff52b..0cd57b7bc 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0003_set_site_domain_and_name.py @@ -25,7 +25,7 @@ def _update_or_create_site_with_sequence(site_model, connection, domain, name): # greater than the maximum value. max_id = site_model.objects.order_by('-id').first().id with connection.cursor() as cursor: - {% if cookiecutter.database_engine == 'postgresql' -%} + {%- if cookiecutter.database_engine == 'postgresql' %} cursor.execute("SELECT last_value from django_site_id_seq") (current_id,) = cursor.fetchone() if current_id <= max_id: @@ -33,7 +33,7 @@ def _update_or_create_site_with_sequence(site_model, connection, domain, name): "alter sequence django_site_id_seq restart with %s", [max_id + 1], ) - {% elif cookiecutter.database_engine == 'mysql' -%} + {%- elif cookiecutter.database_engine == 'mysql' %} cursor.execute("SELECT MAX(id) FROM django_site") (current_id,) = cursor.fetchone() if current_id <= max_id: @@ -41,7 +41,7 @@ def _update_or_create_site_with_sequence(site_model, connection, domain, name): "ALTER TABLE django_site AUTO_INCREMENT=%s", [max_id + 1], ) - {% endif -%} + {%- endif %} def update_site_forward(apps, schema_editor):