Example #1
0
 def delete_index(self, db, table_name, column_names, db_tablespace=''):
     name = db.create_index_name(table_name, column_names) + '_like'
     sql = db.drop_index_string % {
         "index_name": db.quote_name(name),
         "table_name": db.quote_name(table_name),
     }
     db.execute(sql)
    def forwards(self, orm):
        table, search_vector_column, index_name = self._reflect(orm)

        # Adding index on 'Event', fields ['search_vector']
        index_sql = 'CREATE INDEX %s ON %s USING gin(%s);' % (
            db.quote_name(index_name), db.quote_name(table),
            db.quote_name(search_vector_column))
        get_logger().info('>>> ADDING FTS INDEX')
        db.execute(index_sql)
    def forwards(self, orm):
        table, search_vector_column, index_name = self._reflect(orm)

        # Adding index on 'Event', fields ['search_vector']
        index_sql = 'CREATE INDEX %s ON %s USING gin(%s);' % (
            db.quote_name(index_name),
            db.quote_name(table),
            db.quote_name(search_vector_column)
        )
        get_logger().info('>>> ADDING FTS INDEX')
        db.execute(index_sql)
Example #4
0
def get_sql_schema(model, already_defined):
    """ Returns a string with the database schema (SQL create table statement).
    """
    if model in already_defined:
        return ''

    lines = []

    table_name = model._meta.db_table

    for parent in model._meta.parents:
        defn = get_sql_schema(parent, already_defined)
        if defn:
            lines.append(defn)

    columns = [
        db.column_sql(table_name, field.db_column, field)
        for field in model._meta.local_fields
    ]

    lines.append("--")
    lines.append("-- %s" % model._meta.object_name)
    lines.append("--")
    lines.append("")
    lines.append('CREATE TABLE %s (\n    %s\n);' % (
            db.quote_name(table_name),
            ',\n    '.join([col for col in columns if col]),
        ))
    lines.append("\n".join(db.deferred_sql))
    lines.append("")

    already_defined.add(model)

    return '\n'.join(lines)
    def backwards(self, orm):
        table, search_vector_column, index_name = self._reflect(orm)

        # Removing index on 'Event', fields ['search_vector']
        sql = db.drop_index_string % {'index_name': db.quote_name(index_name)}

        get_logger().info('>>> DROPPING FTS INDEX')
        db.execute(sql)
    def backwards(self, orm):
        table, search_vector_column, index_name = self._reflect(orm)

        # Removing index on 'Event', fields ['search_vector']
        sql = db.drop_index_string % {'index_name': db.quote_name(index_name)}

        get_logger().info('>>> DROPPING FTS INDEX')
        db.execute(sql)
Example #7
0
    def backwards(self, orm):
        meta = self._reflect(orm)

        sql = 'DROP TRIGGER %(trigger_name)s ON %(table_name)s;' % {
            'trigger_name': db.quote_name(meta['trigger_name']),
            'table_name': db.quote_name(meta['table_name']),
        }

        get_logger().info('>>> DROPPING FTS TRIGGER')
        db.execute(sql)


        sql = 'DROP FUNCTION %(tsv_func)s;' % {
            'tsv_func': self.tsv_func,
        }

        get_logger().info('>>> DROPPING TSV FUNCTION')
        db.execute(sql)
 def forwards(self, orm):
     connection = db._get_connection()
     cursor = connection.cursor()
     try:
         cursor.execute('select raw_field_order from %s' % db.quote_name('preferences_registrationpreferences'))
         connection.close()
     except:
         connection.close()
         # Adding field 'RegistrationPreferences.raw_field_order'
         db.add_column('preferences_registrationpreferences', 'raw_field_order',
                     self.gf('django.db.models.fields.CharField')(default='{}', max_length=1024, blank=True),
                     keep_default=False)
Example #9
0
    def forwards(self, orm):
        meta = self._reflect(orm)

        sql = ' '.join((
            'CREATE FUNCTION %(tsv_func)s RETURNS trigger AS $$',
            'begin',
                'new.%(index_column)s :=',
                "setweight(to_tsvector('pg_catalog.english',",
                    "coalesce(new.%(title_column)s, '')), 'A') ||",
                "setweight(to_tsvector('pg_catalog.english',",
                    "coalesce(new.%(description_column)s, '')), 'B');",
                'return new;',
            'end',
            '$$ LANGUAGE plpgsql;'
        )) % {
            'tsv_func': self.tsv_func,
            'index_column': db.quote_name(meta['index_column']),
            'title_column': meta['title_column'],
            'description_column': meta['description_column'],
        }

        get_logger().info('>>> ADDING FTS FUNCTION')
        db.execute(sql)


        sql = ' '.join((
            'CREATE TRIGGER %(trigger_name)s BEFORE INSERT OR UPDATE',
            'ON %(table_name)s FOR EACH ROW EXECUTE PROCEDURE %(tsv_func)s;'
        )) % {
            'trigger_name': db.quote_name(meta['trigger_name']),
            'table_name': db.quote_name(meta['table_name']),
            'tsv_func': self.tsv_func,
        }

        get_logger().info('>>> ADDING FTS TRIGGER')
        db.execute(sql)