Works fine, thank you :)

пт, 18 мая 2018 г. в 17:28, Mike Bayer <mike...@zzzcomputing.com>:

> See the example dialect at:
>
>
> https://gerrit.sqlalchemy.org/#/c/zzzeek/alembic/+/755/3/tests/test_external_dialect.py
>
> for how you can do this, with this patch.   As always, I'm looking to
> know that this patch does everything you need before merging.
>
>
>
>
>
> On Fri, May 18, 2018 at 9:13 AM, Mike Bayer <mike...@zzzcomputing.com>
> wrote:
> > On Fri, May 18, 2018 at 7:17 AM, Антонио Антуан <a.ch....@gmail.com>
> wrote:
> >> Hi.
> >> I use [that](https://github.com/xzkostyan/clickhouse-sqlalchemy)
> library and
> >> tries to make migrations using alembic.
> >>
> >> Here is simple implementation for that dialect:
> >> ```
> >> class ClickHOuseImpl(postgresql.PostgresqlImpl):
> >>     __dialect__ = 'clickhouse'
> >>     transactional_ddl = False
> >
> >
> https://bitbucket.org/zzzeek/alembic/issues/494/_repr_type-conflates-setting-up-imports
> > is added since it makes no sense to generate impl_rt then ignore it.
> >
> >
> >
> >> ```
> >>
> >> Here is what I got after running `alembic init`:
> >> ```
> >> op.create_table('order_logs',
> >>     sa.Column('ts_spawn', clickhouse_sqlalchemy.types.UInt32(),
> >> nullable=False),
> >>     sa.Column('platform_id', clickhouse_sqlalchemy.types.UInt32(),
> >> nullable=False),
> >>     sa.Column('slave_prefix', clickhouse_sqlalchemy.types.String(),
> >> nullable=False),
> >>     sa.Column('int_orders_ids', clickhouse_sqlalchemy.types.Array(<class
> >> 'clickhouse_sqlalchemy.types.UInt32'>), nullable=False),
> >>     sa.Column('state', clickhouse_sqlalchemy.types.UInt8(),
> nullable=False),
> >>     sa.Column('step', clickhouse_sqlalchemy.types.UInt8(),
> nullable=False),
> >>     sa.Column('ext_orders_ids', clickhouse_sqlalchemy.types.Array(<class
> >> 'clickhouse_sqlalchemy.types.String'>), nullable=True),
> >>     sa.Column('url', clickhouse_sqlalchemy.types.String(),
> nullable=True),
> >>     sa.Column('request', clickhouse_sqlalchemy.types.String(),
> >> nullable=True),
> >>     sa.Column('response', clickhouse_sqlalchemy.types.String(),
> >> nullable=True),
> >>     sa.PrimaryKeyConstraint('ts_spawn', 'platform_id', 'slave_prefix',
> >> 'int_orders_ids', 'state', 'step')
> >>     )
> >> ```
> >> As you can see array-elements generated not correct: nested types have
> >> `<class...>` substring.
> >>
> >> `alembic.autogenerate.render._repr_type` shows me, that custom
> >> representation of types uses only if module_name startswith
> >> `sqlalchemy.dialects`:
> >> ```
> >> ...
> >>     if hasattr(autogen_context.migration_context, 'impl'):
> >>         impl_rt = autogen_context.migration_context.impl.render_type(
> >>             type_, autogen_context)
> >>     else:
> >>         impl_rt = None
> >>
> >>     mod = type(type_).__module__
> >>     imports = autogen_context.imports
> >>     if mod.startswith("sqlalchemy.dialects"):
> >>         dname = re.match(r"sqlalchemy\.dialects\.(\w+)", mod).group(1)
> >>         if imports is not None:
> >>             imports.add("from sqlalchemy.dialects import %s" % dname)
> >>         if impl_rt:
> >>             return impl_rt
> >> ...
> >> ```
> >>
> >> Is there any ways to fix the problem?
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sqlalchemy-alembic" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to sqlalchemy-alembic+unsubscr...@googlegroups.com.
> >> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy-alembic" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sqlalchemy-alembic+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 

Антон

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy-alembic+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to