atviriduomenys / spinta

Spinta is a framework to describe, extract and publish data (a DEP Framework).
MIT License
10 stars 4 forks source link

Identifier exceeds maximum length of 63 characters #566

Closed sirex closed 4 months ago

sirex commented 5 months ago

When I run

spinta --tb native migrate

I get following error:

Loading CsvManifest manifest default (var/instances/releases/0.1.62/manifest.csv)...
Traceback (most recent call last):
  File "spinta/cli/migrate.py", line 91, in migrate
    commands.migrate(context, manifest, backend, migrate_meta)
  File "spinta/backends/postgresql/commands/migrate.py", line 90, in migrate
    handler.run_migrations(op)
  File "spinta/backends/postgresql/helpers/migrate.py", line 222, in run_migrations
    migration.execute(op)
  File "spinta/backends/postgresql/helpers/migrate.py", line 21, in execute
    op.create_table(self.table_name, *self.columns)
  File "alembic/operations/ops.py", line 1303, in create_table
    return operations.invoke(op)
  File "alembic/ddl/impl.py", line 193, in _exec
    return conn.execute(  # type: ignore[call-overload]
  File "sqlalchemy/engine/base.py", line 1385, in execute
    return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
  File "sqlalchemy/sql/ddl.py", line 80, in _execute_on_connection
    return connection._execute_ddl(
  File "sqlalchemy/engine/base.py", line 1474, in _execute_ddl
    compiled = ddl.compile(
  File "sqlalchemy/sql/elements.py", line 503, in compile
    return self._compiler(dialect, **kw)
  File "sqlalchemy/sql/ddl.py", line 32, in _compiler
    return dialect.ddl_compiler(dialect, self, **kw)
  File "sqlalchemy/sql/compiler.py", line 464, in __init__
    self.string = self.process(self.statement, **compile_kwargs)
  File "sqlalchemy/sql/compiler.py", line 499, in process
    return obj._compiler_dispatch(self, **kwargs)
  File "sqlalchemy/sql/visitors.py", line 82, in _compiler_dispatch
    return meth(self, **kw)
  File "sqlalchemy/dialects/postgresql/base.py", line 2828, in visit_create_index
    self._prepared_index_name(index, include_schema=False),
  File "sqlalchemy/sql/compiler.py", line 4735, in _prepared_index_name
    index_name = self.preparer.format_index(index)
  File "sqlalchemy/sql/compiler.py", line 5556, in format_index
    return self.format_constraint(index)
  File "sqlalchemy/sql/compiler.py", line 5511, in format_constraint
    return self.truncate_and_render_index_name(
  File "sqlalchemy/sql/compiler.py", line 5527, in truncate_and_render_index_name
    return self._truncate_and_render_maxlen_name(
  File "sqlalchemy/sql/compiler.py", line 5548, in _truncate_and_render_maxlen_name
    self.dialect.validate_identifier(name)
  File "sqlalchemy/engine/default.py", line 591, in validate_identifier
    raise exc.IdentifierError(
sqlalchemy.exc.IdentifierError:
    Identifier 'idx_datasets/gov/rc/ar/grasavivaldybe/GraSavivaldybe_savivaldybes'
    exceeds maximum length of 63 characters

Manifest used:

https://github.com/atviriduomenys/manifest/blob/master/datasets/gov/rc/ar/grasavivaldybe.csv

I was running release smoke tests:

https://github.com/atviriduomenys/spinta/blob/8b8bd97bc30423346523ee64e484f45a031b630f/notes/spinta/release.sh#L310