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)
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): 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)
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)