Visually edit Propel definitions

Import, edit and export Propel definitions in a few clicks.

Increase speed and comfort of your work.

  • Entity
  • Bundle
  • Project
Skipper diagram - entity Skipper diagram - bundle Skipper diagram - project

1.Visually edit your project model.

  • XML
  • YML
<?xml version="1.0"?>
<database name="Ecommerce">
  <table name="EcommerceOrder">
    <column name="id" type="Integer" size="4" autoIncrement="true" primaryKey="true"/>
    <validator column="id">
      <rule name="unique" message="Value must be unique"/>
      <rule name="required" message="Value is required"/>
    <column name="ecommerce_order_state_id" type="integer" size="4"/>
    <column name="contact_id" type="integer" size="4"/>
    <column name="delivery_address_id" type="integer" size="4"/>
    <column name="billing_address_id" type="integer" size="4"/>
    <column name="ordered_at" type="Timestamp"/>
    <column name="customer_note" type="Varchar"/>
    <column name="internal_note" type="Varchar"/>
    <unique name="IX_UQ_EcommerceOrder_billing_address_id">
      <unique-column name="billing_address_id"/>
    <foreign-key foreignTable="EcommerceOrderState">
      <reference foreign="id" local="ecommerce_order_state_id"/>
    <foreign-key foreignTable="Contact">
      <reference foreign="id" local="contact_id"/>
    <foreign-key foreignTable="Address">
      <reference foreign="id" local="delivery_address_id"/>
    <foreign-key foreignTable="Address">
      <reference foreign="id" local="billing_address_id"/>
    <behavior name="timestampable">
      <parameter name="update_column" value="created_at"/>
      <parameter name="create_column" value="cupdated_at"/>
      type: Integer
      size: 4
      autoIncrement: true
      primaryKey: true
      type: integer
      size: 4
      foreignTable: EcommerceOrderState
      foreignReference: id
      type: integer
      size: 4
      foreignTable: Contact
      foreignReference: id
      type: integer
      size: 4
      foreignTable: Address
      foreignReference: id
      type: integer
      size: 4
      foreignTable: Address
      foreignReference: id
      type: Timestamp
      type: Varchar
      type: Varchar
      IX_UQ_EcommerceOrder_billing_address_id: [billing_address_id]
        update_column: created_at
        create_column: cupdated_at

2.Export it to complete definition files.

Download 14-day trial version

Try Skipper for free. No credit card needed.

Why use Skipper

Simple Project import

Smart import wizard allows you to import any of your Propel projects just in a few seconds. Created visual model lets you discover all objects and logic among them.

Skipper file menu Skipper Propel import wizard Skipper Propel import wizard - definition files Skipper imported Propel project

Definitions exported by one click

Export your project into Propel ORM definitions any time you need. Standardized output is completely ready-to-use, you don't need to edit or add anything.

Skipper Propel export settings Skipper Propel export results Propel definitions exported by Skipper

Editing in visual interface

Create and edit all objects visually via smart dialogs and wizards. All changes in model evoke appropriate changes in exported Propel definition files.

Skipper entity editor for Propel Skipper package editor for Propel Skipper Association editor for Propel

Lower need of Propel skills

Value advisors, validators and assistants, definitions generated via standardized templates. Don't worry about Propel syntax and keywords anymore.

Skipper Propel property editor - behaviors i18 Skipper Propel property editor - behaviors timestampable Skipper editing Propel fields

See all the features

Support for all Propel features

Supported formats

Skipper supports all available Propel formats. Import and export your projects in XML or YML (YAML).

Skipper Propel xml export result Skipper Propel yml export result

Entities and modules

Create new or edit existing entity and change its fields and ORM properties. For better orientation in your Propel project, organize entities into colorful modules and regions.

Skipper diagram of Propel entities and associations Editing Propel fields, associations and inheritance in Skipper Skipper visual model of Propel project


Connect entities by one to one, one to many and many to many associations. Define owner and inverse entity or MN entity and aliases. Smart wizards will help you set up Propel associations.

Skipper Propel Many-to-Many wizard Skipper Propel Association wizard Skipper Propel Many-to-Many editor Skipper Propel Association editor


Create and edit Propel inheritance via intuitive dialog simply and quickly. Choose base and derived entity, set up inheritance type and define inheritance discriminators.

Skipper Propel inheritance wizard Skipper Propel inheritance editor


With Skipper you can create indexes by a few clicks. In user-friendly visual interface define all needed indexes and choose fields indexed by them.

Skipper Propel index editor

ORM Properties

You can edit any of your model properties directly in visual model. Skipper offers unique Property Editor where any value can be modified.

Skipper Propel property editor - attributes and options Skipper Propel property editor - behaviors Skipper Propel property editor - adding behaviors


You can customize configurations for your Propel project. Define your own datatypes, custom properties, add new behaviors or change existing properties.

Support for MVC frameworks

No matter, which MVC framework you use, whether it is Symfony, Zend or any other. Definition files generated by Skipper have support for any existing MVC framework.

Over 5,000 companies use Skipper every day

It is faster and gives less errors to have Skipper create the mapping code instead of writing it myself. Later in the development process I often use the Skipper diagram as a quick reference.

Herman Peeren, Yepr

We use Skipper on our daily basis for ecommerce software development. It lets us visualize at a glance the data models and work on them in a simple and easy way.

Dario Schilman, IDS Soluciones Ecommerce

We have good use of the tool. It simplifies our daily work, saves us time and is simple and intuitive to use.

Thomas Somoen, Try/Apt

Simply put, for us, Skipper is not just a tool to master, but a mastermind that teaches us the best programming practices.

Can Berkol, Biber Ltd

It saved us a lot of time designing and configuring complex data models. It is impressive to see what this software achieves on its own.

Michael Stoye, ColorGATE

It simplifies our work because it saves us time. With features added over time like adding behaviors to Propel in Skipper it has become an unmissable tool in our organisation.

Erwin te Bos, aXtion

Skipper is a stable and easy to use schema designing tool! No documentation, just design and everything is documented!

Siebe Vos, Inform'aid

Skipper is especially helpful in the initial data modeling phase. Exporting the data model and scaffolding makes it really easy to get a first prototype up and running in a matter of minutes.

Jörn Wagner, Explicatis

More user stories

Detailed list of supported Propel ORM features

Skipper model properties

Object Property
Project name, storage path, description
Module name, description, external plugin storage, export path and format
Entity name, description
Field name, type, size, required, unique, primary key, auto increment, default value, enum values, description
Association owner/inverse entity, reference fields, owner/inverse alias, association type (one-to-one, one-to-many), parent requirement, description
Many to Many mn entity, owner/inverse entity, reference fields, owner/inverse alias, description
Inheritance base/derived entity, inheritance type, discriminator value/field, description
Index name, unique, indexed fields, description

Propel model properties

Object Property
Project -
Module name, namespace, defaultIdMethod(native,none), package, baseClass, basePeer, defaultPhpNamingMethod (nochange, underscore, phpname), heavyIndexing
Entity Behaviors, Vendors (type, parameters), isI18N, i18nTable, idMethod(native, none), phpName, skipSql, abstract, phpNamingMethod, baseClass, basePeer, heavyIndexing, readOnly, treeMode(NestedSet, MaterializedPath), reloadOnInsert, reloadOnUpdate, allowPkInsert, package
Field Validators, primaryString, isCulture, index, onDelete , phpName, peerName, phpType, sqlType, scale, phpNamingMethod, inheritance, inputValidator, defaultExpr, defaultValue, lazyLoad, scale
Association onDelete, onUpdate, phpName, refPhpName

Propel behaviors support

  • customBehavior
  • nested_set
  • soft_delete
  • sluggable
  • sortable
  • aggregate_column
  • versionable
  • i18n
  • query_cache
  • auto_add_pk
  • alternative_coding_standards
  • timestampable

Propel validators support

  • match
  • notMatch
  • maxLength
  • minLength
  • maxValue
  • minValue
  • required
  • unique
  • validValues
  • type
  • otherValidator
  • customValidator

Propel datatypes support

  • Boolean
  • Integer
  • Float
  • Double
  • Real
  • Decimal
  • TinyInt
  • BigInt
  • Char
  • Varchar
  • LongVarchar
  • CLOB
  • BLOB
  • Date
  • Time
  • Timestamp
  • ENUM
  • Array

Propel associations support

  • Propel One to one (one-to-one)
  • Propel One to many (one-to-many)
  • Propel Many to one (many-to-one)
  • Propel Many to many (many-to-many)