Closed Andyworker closed 6 years ago
Hi @Andyworker , thanks for reporting. Could you please also provide your table definition?
From the stacktrace I assume it contains an ARRAY(OBJECT) column.
Also, please post the versions of crate
and sqlalchemy
.
thx, You feed back !🙂
this is my env version:
SQLAlchemy==1.1.11 crate==0.21.2
this is my modal defined:
from sqlalchemy import create_engine
from crate.client.sqlalchemy.types import Object, ObjectArray
from sqlalchemy import Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.pool import QueuePool
from sqlalchemy.types import *
from sqlalchemy.orm import Session
from datetime import datetime
engine = create_engine('crate://', connect_args={
'servers': ['localhost:4200']
}, poolclass=QueuePool, pool_size=1024)
ModalBase = declarative_base()
crate_session = Session(bind=engine)
def gen_uuid():
return str(uuid.uuid4())
class TestDB(ModalBase):
__tablename__ = 'testdb'
uid = Column(String, primary_key=True, default=gen_uuid(), unique=True)
task_uuid = Column(String, nullable=False, unique=True)
datatype_version = Column(FLOAT, default=1.0)
datasource = Column(String)
host = Column(String, nullable=False)
port = Column(Integer, nullable=False)
country = Column(String)
province = Column(String)
city = Column(String)
ISP = Column(String)
latitude = Column(FLOAT)
longitude = Column(FLOAT)
service_name = Column(String)
service_version = Column(String)
service_protocol = Column(String)
# tcp: 1, udp: 0
protocol_type = Column(Integer, default=1)
is_web_service = Column(Boolean, default=False)
system_info = Column(Object)
web_mix_info = Column(Object)
ssl_mix_info = Column(Object)
response = Column(String)
tags = Column(ObjectArray)
last_modified = Column(TIMESTAMP, default=datetime.now())
def main():
db_owner = TestDB()
ModalBase.metadata.create_all(bind=engine)
if __name__ == '__main__':
main()
My CrateDB
veriosn: 2.3.3
Thanks for the schema definition. We're able to reproduce the issue and will take a look at it.
We've a fix for this (https://github.com/crate/crate-python/pull/277) which will be released with the next hotfix release.
Nice, thx your job
Hey , Am i try create new table using with the
engine.create_all
, returns some errors :how to fix it?