Changing single column primary key to a composite primary key
I would strongly advise against trying to use a composite primary-key for this, as Peewee provides much better support for scalar primary-keys (integers, uuids, etc). Many things will be harder for you if you switch to a composite primary-key - specifically creating foreign-keys to your "Person" table. Peewee **does not support FKs to models with composite PKs**.

If you are just trying to enforce the uniqueness of first/last, then create a multi-column UNIQUE index:

```python
# Specify the table, column names, and whether the index should be
# UNIQUE or not.
migrate(
    # Create a unique index on the first and last name fields:
    migrator.add_index('person', ('first', 'last'), True),
)
```

If you insist on making your life harder, though, you can consult the Postgresql documentation for instructions on dropping a primary-key and creating a new multi-column PK, as creating/dropping PKs is not supported by the migrations library.
I have a 'person' table with auto generated 'id' as the primary key. I want to change this primary key to a composite primary key with first_name and last_name as the columns, using schema migrator. Is it possible to achieve this? Or is executing a SQL my only alternative? I am using PostgreSQL. 

    def perform_schema_migration(db):
        migrator = PostgresqlMigrator(db)
        migrate(
                migrator.drop_constraint('person', 'person_pkey')
                )