mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Fixed CSV import's handling of Boolean columns.
This commit is contained in:
parent
15eae9ed6c
commit
85ee27dedd
1 changed files with 11 additions and 1 deletions
|
@ -1,6 +1,8 @@
|
|||
# encoding: utf8
|
||||
import sys
|
||||
|
||||
import sqlalchemy.types
|
||||
|
||||
from .db import connect, metadata
|
||||
|
||||
def main():
|
||||
|
@ -49,9 +51,17 @@ def csvimport(engine_uri, dir='.'):
|
|||
row = table()
|
||||
|
||||
for column_name, value in zip(column_names, csvs):
|
||||
if table.__table__.c[column_name].nullable and value == '':
|
||||
column = table.__table__.c[column_name]
|
||||
if column.nullable and value == '':
|
||||
# Empty string in a nullable column really means NULL
|
||||
value = None
|
||||
elif isinstance(column.type, sqlalchemy.types.Boolean):
|
||||
# Boolean values are stored as string values 0/1, but both
|
||||
# of those evaluate as true; SQLA wants True/False
|
||||
if value == '0':
|
||||
value = False
|
||||
else:
|
||||
value = True
|
||||
else:
|
||||
# Otherwise, unflatten from bytes
|
||||
value = value.decode('utf-8')
|
||||
|
|
Loading…
Reference in a new issue