def createTable(self): inferer = TypeInferer(self.csv_file_path) inferer.infer() self.fieldnames = [self.slugify(f) for f in inferer.header] if self.primary_key and self.primary_key not in self.fieldnames: raise ValueError('primary key %s given is not amongst the columns (%s)' \ % (self.primary_key, self.fieldnames)) sql_table = sa.Table(self.name_slug, sa.MetaData()) if not self.primary_key: sql_table.append_column(sa.Column('id', sa.Integer, primary_key=True)) self.primary_key = 'id' else: sql_table.append_column(sa.Column(self.primary_key, inferer.types[self.primary_key], primary_key=True)) for column_name, column_type in inferer.types.items(): column_name = self.slugify(column_name) col = sa.Column(column_name, column_type()) sql_table.append_column(col) dialect = sa.dialects.postgresql.dialect() create_table = str(sa.schema.CreateTable(sql_table)\ .compile(dialect=dialect)).strip(';') self.executeTransaction('DROP TABLE IF EXISTS {0}'.format(self.name_slug)) self.executeTransaction(create_table)
def createTable(self): inferer = TypeInferer(self.csv_file_path) inferer.infer() self.fieldnames = [self.slugify(f) for f in inferer.header] if self.primary_key and self.primary_key not in self.fieldnames: raise ValueError('primary key %s given is not amongst the columns (%s)' \ % (self.primary_key, self.fieldnames)) sql_table = sa.Table(self.name_slug, sa.MetaData()) if not self.primary_key: sql_table.append_column( sa.Column('id', sa.Integer, primary_key=True)) self.primary_key = 'id' else: sql_table.append_column( sa.Column(self.primary_key, inferer.types[self.primary_key], primary_key=True)) for column_name, column_type in inferer.types.items(): column_name = self.slugify(column_name) col = sa.Column(column_name, column_type()) sql_table.append_column(col) dialect = sa.dialects.postgresql.dialect() create_table = str(sa.schema.CreateTable(sql_table)\ .compile(dialect=dialect)).strip(';') self.executeTransaction('DROP TABLE IF EXISTS {0}'.format( self.name_slug)) self.executeTransaction(create_table)
def makeRawTable(self): inferer = TypeInferer(self.file_path) inferer.infer() sql_table = sa.Table('raw_{0}'.format(self.table_name), sa.MetaData()) for column_name, column_type in inferer.types.items(): sql_table.append_column(sa.Column(column_name, column_type())) dialect = sa.dialects.postgresql.dialect() create_table = str(sa.schema.CreateTable(sql_table)\ .compile(dialect=dialect)).strip(';') self.executeTransaction('DROP TABLE IF EXISTS raw_{0}'.format(self.table_name)) self.executeTransaction(create_table)
def makeRawTable(self): inferer = TypeInferer(self.file_path) inferer.infer() sql_table = sa.Table('raw_{0}'.format(self.table_name), sa.MetaData()) for column_name, column_type in inferer.types.items(): sql_table.append_column(sa.Column(column_name, column_type())) dialect = sa.dialects.postgresql.dialect() create_table = str(sa.schema.CreateTable(sql_table)\ .compile(dialect=dialect)).strip(';') self.executeTransaction('DROP TABLE IF EXISTS raw_{0}'.format( self.table_name)) self.executeTransaction(create_table)