2016-06-03 2 views
0

Un petit extrait d'un schéma de base de données que je suis en train de définir dans mon dossier « schema.xml »:PropelORM + PostgreSQL: Comment définir une contrainte CHECK de type SQL sur une colonne dans 'schema.xml'?

<table name="hotelroom" phpName="hotelroom"> 
    <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> 
    <column name="room_number" type="varchar" size="10" required="true" /> 
    <column name="price" type="numeric" defaultValue="1000" required="true" /> 
    <unique> 
    <unique-column name="room_number" /> 
    </unique> 
    </table> 

Dans PostgreSQL pour cette colonne « prix » j'aurais écrit CHECK (price > 0::numeric), mais je peux » Je semble trouver un moyen d'y parvenir ici.J'ai vérifié la documentation (http://propelorm.org/documentation/reference/schema.html), mais je n'ai rien trouvé à ce sujet. Merci pour l'instant.

Répondre

0

Vous utilisez v1. *, Mais à partir du lien vers le document ci-dessus, vous semblez utiliser Propel v2.

Je pense que vous cherchez le GreaterThan qui n'est disponible que depuis la version 2.

<behavior name="validate"> 
    <parameter name="rule1" value="{column: price, validator: GreaterThan, options: {value: 0, message=Price is not valid}}" /> 
</behavior>