# FastAPI Migrate

***

**1. Simple Migration**

```python
from fastapi_migrate import migrate

@migrate()
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**2. Multiple Migrations**

```python
from fastapi_migrate import migrate

@migrate()
def m001_create_table():
    """Create a new table."""
    # Your migration logic here

@migrate()
def m002_add_column():
    """Add a new column to an existing table."""
    # Your migration logic here
```

**3. Migration with Dependencies**

```python
from fastapi_migrate import migrate, depends_on

@depends_on("m001_create_table")
@migrate()
def m002_add_column():
    """Add a new column to an existing table."""
    # Your migration logic here
```

**4. Migration with Downgrade**

```python
from fastapi_migrate import migrate

@migrate()
def m001_create_table():
    """Create a new table."""
    # Your migration logic here

@migrate(downgrade=True)
def m002_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**5. Migration with Multiple Versions**

```python
from fastapi_migrate import migrate

@migrate(versions=["1.0.0", "1.0.1"])
def m001_add_column():
    """Add a new column to an existing table."""
    # Your migration logic here
```

**6. Migration with Custom Version**

```python
from fastapi_migrate import migrate

@migrate(version="my_custom_version")
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**7. Migration with Skip**

```python
from fastapi_migrate import migrate

@migrate(skip=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**8. Migration with Upgrade**

```python
from fastapi_migrate import migrate

@migrate(upgrade=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**9. Migration with Downgrade Only**

```python
from fastapi_migrate import migrate

@migrate(downgrade_only=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**10. Migration with Multiple Runs**

```python
from fastapi_migrate import migrate

@migrate(runs=3)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**11. Migration with Multiple Runs and Downgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, downgrade=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**12. Migration with Multiple Runs and Upgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, upgrade=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**13. Migration with Multiple Runs and Downgrade Only**

```python
from fastapi_migrate import migrate

@migrate(runs=3, downgrade_only=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**14. Migration with Multiple Runs and Skip**

```python
from fastapi_migrate import migrate

@migrate(runs=3, skip=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**15. Migration with Multiple Runs, Skip, and Downgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, skip=True, downgrade=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**16. Migration with Multiple Runs, Skip, and Upgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, skip=True, upgrade=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**17. Migration with Multiple Runs, Skip, and Downgrade Only**

```python
from fastapi_migrate import migrate

@migrate(runs=3, skip=True, downgrade_only=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**18. Migration with Multiple Runs, Multiple Versions, and Skip**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], skip=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**19. Migration with Multiple Runs, Multiple Versions, and Downgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], downgrade=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**20. Migration with Multiple Runs, Multiple Versions, and Upgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], upgrade=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**21. Migration with Multiple Runs, Multiple Versions, and Downgrade Only**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], downgrade_only=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**22. Migration with Multiple Runs, Multiple Versions, Skip, and Downgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], skip=True, downgrade=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

**23. Migration with Multiple Runs, Multiple Versions, Skip, and Upgrade**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], skip=True, upgrade=True)
def m001_create_table():
    """Create a new table."""
    # Your migration logic here
```

**24. Migration with Multiple Runs, Multiple Versions, Skip, and Downgrade Only**

```python
from fastapi_migrate import migrate

@migrate(runs=3, versions=["1.0.0", "1.0.1"], skip=True, downgrade_only=True)
def m001_drop_table():
    """Drop the table created in m001_create_table."""
    # Your migration logic here
```

\*\*25. Migration with Multiple Runs, Custom
