Add address country i18n DB columns for localized checkout
This commit is contained in:
43
mandelstudio/migrations/0006_address_country_i18n_columns.py
Normal file
43
mandelstudio/migrations/0006_address_country_i18n_columns.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
LANGUAGES = ("en", "de", "fr", "es", "it", "pt", "ru")
|
||||
|
||||
|
||||
def _add_column_if_missing(schema_editor, table_name, column_name, column_sql):
|
||||
connection = schema_editor.connection
|
||||
with connection.cursor() as cursor:
|
||||
existing = {
|
||||
row.name
|
||||
for row in connection.introspection.get_table_description(cursor, table_name)
|
||||
}
|
||||
if column_name in existing:
|
||||
return
|
||||
quoted_table = schema_editor.quote_name(table_name)
|
||||
quoted_column = schema_editor.quote_name(column_name)
|
||||
cursor.execute(
|
||||
f"ALTER TABLE {quoted_table} ADD COLUMN {quoted_column} {column_sql}"
|
||||
)
|
||||
|
||||
|
||||
def add_address_i18n_columns(apps, schema_editor):
|
||||
for lang in LANGUAGES:
|
||||
_add_column_if_missing(
|
||||
schema_editor,
|
||||
"address_country",
|
||||
f"printable_name_{lang}",
|
||||
"varchar(128) NULL",
|
||||
)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("mandelstudio", "0005_checkout_i18n_columns"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(
|
||||
add_address_i18n_columns,
|
||||
migrations.RunPython.noop,
|
||||
)
|
||||
]
|
||||
Reference in New Issue
Block a user