Comments (4)
Hi, @wuhuanyan
if_exists
was designed as extension of table.drop
syntax.
When SA reflect table from database (see query in clickhouse log DESCRIBE TABLE test_drop FORMAT TabSeparatedWithNamesAndTypes
) it constructs instance of default Table class. That's why drop.if_exists
in visit_drop_table
doesn't work.
If we comment or change this string to something like this: if getattr(drop, 'if_exists', False)
. We will get following error:
~/clickhouse-sqlalchemy/clickhouse_sqlalchemy/drivers/base.py in post_create_table(self, table)
286
287 if not engine:
--> 288 raise exc.CompileError("No engine for table '%s'" % table.name)
289
290 return ' ENGINE = ' + self.process(engine)
CompileError: No engine for table 'test_drop'
Engine is required parameter for table creation. I think it also should be reflected from database via parsing SHOW CREATE TABLE testing
query.
In current pandas to_sql interface it seems impossible to pass additional parameters such as CH Engine.
I'd recommend you not to drop/create table as temporary solution. Or you can drop/create tables via sqlalchemy. See README for examples.
from clickhouse-sqlalchemy.
I changed it like this
clickhouse_sqlalchemy/drivers/base.py
294th lines
def visit_drop_table(self, drop):
text = '\nDROP TABLE IF EXISTS '
# if drop.if_exists:
# text += 'IF EXISTS '
return text + self.preparer.format_table(drop.element)
from clickhouse-sqlalchemy.
In addition to other questions
How do you pass ENGINE parameters of CREATE TABLE through pandas.dataframe.to_sql?
from clickhouse-sqlalchemy.
Fixed in #94.
from clickhouse-sqlalchemy.
Related Issues (20)
- Table name included in CRUD update while ClickHouse does not accept it
- Bulk update fails on ClickHouse
- Native driver fails with stream results
- Alembic couldn't create table alembic_version HOT 14
- Collate is not generating a correct query
- Error connecting with the database when password contains a special character (+%...) with native engine. HOT 1
- Does `clickhouse-sqlalchemy` 3.0.0 support `sqlalchemy` of the version 1.4.*? HOT 5
- Create a cluster table orm class with engines.Distributed which has a logs attribute, how to use variable to indicate it?
- alembic does not autogenerate engine for clickhouse table HOT 4
- Patreon does not work HOT 1
- Add support for Date32 HOT 2
- Handling Clickhouse Alembic Migrations for Clickhouse cluster HOT 2
- Support/example for creating views HOT 2
- `create_all` for all the `MaterializedView`
- With chdb this clickhouse downsized memory database, can clickhouse-sqlalchemy support it or not?
- Support VariantType
- Table reflection for DateTime64 timezone will be extra quoted
- Alembic_Version Records disappered after clickhouse alembic migration HOT 5
- using http mode, connecting database failed when account password ends with @ HOT 2
- Support nested Map column
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clickhouse-sqlalchemy.