我想用存储在 csv 文件中的初始数据填充一个新的数据库。我尝试使用 odo 用 csv 文件的内容填充现有表。我的文件没有主键,并且列数不匹配,因为数据库定义了其他列。
我怎样才能使用 odo 来实现这一点?
from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Test(Base):
__tablename__ = 'testtable'
uid = Column(Integer, primary_key=True)
colA = Column(String(50))
colB = Column(String(50))
comment = Column(String(100))
engine = create_engine('sqlite:///testdb.db')
Base.metadata.create_all(engine)
我的 csv 文件如下所示:
col A;col B
aa;bb
ax;bx
这不起作用:
from odo import odo
odo('csvfile.csv',
'sqlite:///testdb.db::testtable',
has_header=True)
错误信息:
expected 4 columns but found 3 - filling the rest with NULL
INSERT failed: datatype mismatch