mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
CSV import now respects NULLability of columns.
Empty strings loaded into NULL columns are changed to NULL instead.
This commit is contained in:
parent
20c9c23f51
commit
ac325b620d
1 changed files with 10 additions and 4 deletions
|
@ -43,14 +43,20 @@ def csvimport(engine_uri, dir='.'):
|
||||||
print table_name
|
print table_name
|
||||||
|
|
||||||
reader = csv.reader(open("%s/%s.csv" % (dir, table_name), 'rb'), lineterminator='\n')
|
reader = csv.reader(open("%s/%s.csv" % (dir, table_name), 'rb'), lineterminator='\n')
|
||||||
columns = [unicode(column) for column in reader.next()]
|
column_names = [unicode(column) for column in reader.next()]
|
||||||
|
|
||||||
for csvs in reader:
|
for csvs in reader:
|
||||||
row = table()
|
row = table()
|
||||||
|
|
||||||
for column, value in zip(columns, csvs):
|
for column_name, value in zip(column_names, csvs):
|
||||||
|
if table.__table__.c[column_name].nullable and value == '':
|
||||||
|
# Empty string in a nullable column really means NULL
|
||||||
|
value = None
|
||||||
|
else:
|
||||||
|
# Otherwise, unflatten from bytes
|
||||||
value = value.decode('utf-8')
|
value = value.decode('utf-8')
|
||||||
setattr(row, column, value)
|
|
||||||
|
setattr(row, column_name, value)
|
||||||
|
|
||||||
session.add(row)
|
session.add(row)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue