2012-02-10 2 views
2
class AccountIndexes(Base): 
    __tablename__ = 'account_indexes' 
    id = Column(Integer, primary_key = True) 
    user_id = Column(Integer, nullable=False, unique=True, index=True) 
    full_name = Column(String(255), nullable=True) 
    __table_args__ = {'mysql_engine':'MyISAM'} 

C'est ma table. Comment créer un "index de texte intégral" sur full_name? (Pas un indice normal)Dans SQLAlchemy, comment spécifier un index de texte intégral?

+0

Remarque: Je n'ai pas besoin d'utiliser réellement l'API de requête. J'ai juste besoin de le définir et de créer l'index. (J'utilise le SQL brut de toute façon) – TIMEX

Répondre

1

Si vous pouvez vérifier le code dans Index de sqlalchemy.schema ils écrit

def __init__(self, name, *columns, **kw): 
    """Construct an index object. 

    :param name: 
     The name of the index 

    :param \*columns: 
     Columns to include in the index. All columns must belong to the same 
     table. 

    :param unique: 
     Defaults to False: create a unique index. 

    :param \**kw: 
     Other keyword arguments may be interpreted by specific dialects. 

    """ 
    self.table = None 
    # will call _set_parent() if table-bound column 
    # objects are present 
    ColumnCollectionMixin.__init__(self, *columns) 
    self.name = name 
    self.unique = kw.pop('unique', False) 
    self.kwargs = kw 

maintenant dans __init__ du Index ils ne vérifient la unique. Je pense que pour générer un index fulltext, vous devez utiliser la fonctionnalité de manipulation DDL de sqlalchemy.

+3

exemple de DDL: http://docs.sqlalchemy.org/en/latest/core/schema.html?highlight=ddl#sqlalchemy.schema.DDL – zzzeek

Questions connexes