Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)