Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
9d74ef7
Add fixed option for binary column type (#1014)
dereuromark Mar 7, 2026
ca1b74e
Fix misleading next steps message in upgrade command (#1037)
dereuromark Mar 7, 2026
8d27e00
Fix upgrade command not matching plugins with slashes (#1039)
dereuromark Mar 7, 2026
612764c
Add TYPE_BIT constant to AdapterInterface (#1013)
dereuromark Mar 7, 2026
4085be7
Auto-generate foreign key constraint names when not provided
dereuromark Mar 8, 2026
629c85e
Update test comparison files for new FK naming convention
dereuromark Mar 8, 2026
22eb54e
Update test comparison files with index rename operations
dereuromark Mar 8, 2026
2897bf2
Remove unnecessary index operations from comparison file
dereuromark Mar 8, 2026
66e53bd
Merge pull request #1043 from cakephp/5.x
dereuromark Mar 11, 2026
fc56383
Add conflict resolution for auto-generated FK constraint names (#1042)
dereuromark Mar 11, 2026
6d4b00d
Filter out null fixed option from generated migrations (#1048)
dereuromark Mar 11, 2026
ea004d1
Document foreign key constraint naming changes
dereuromark Mar 11, 2026
9cdbada
Raise PHPStan level to 8 with null safety fixes (#1044)
jamisonbryant Mar 11, 2026
273b420
Stop using deprecated setOnDelete/setOnUpdate methods (#1047)
dereuromark Mar 11, 2026
2454828
Merge branch '5.x' into fix-auto-generate-fk-constraint-name
dereuromark Mar 11, 2026
2f52459
Auto-generate foreign key constraint names when not provided (#1041)
dereuromark Mar 11, 2026
6f57c07
Merge pull request #1049 from cakephp/docs/fk-naming-changes
dereuromark Mar 11, 2026
5abc573
Add support for database views and triggers (#957)
dereuromark Mar 12, 2026
c8cfb93
Fix LONGTEXT columns becoming TEXT in generated migrations (#1050)
dereuromark Mar 12, 2026
d752038
Add fluent Table API for check constraints (#1052)
dereuromark Mar 15, 2026
4e108a3
fix CS (#1054)
LordSimal Mar 15, 2026
347b4ab
Merge remote-tracking branch 'origin/5.x' into 5.next
dereuromark Mar 17, 2026
9b190c1
Update CI workflow branches for GitHub Actions
dereuromark Mar 17, 2026
e485847
improve error message if a migration contains the old base migration …
LordSimal Mar 27, 2026
21c1769
Add migrations reset command (#1051)
dereuromark Mar 28, 2026
e9baed9
Fix checkSync() to only consider migrations from current context (#1061)
dereuromark Mar 29, 2026
36aa170
Introduce VitePress documentation using @cakephp/docs-skeleton (#1055)
josbeir Mar 29, 2026
4ccc5f4
fix base for new docs
LordSimal Mar 29, 2026
eafc8aa
fix sidebar having homepage linked
LordSimal Mar 29, 2026
637b17f
Merge branch '5.x' into 5.next
LordSimal Mar 30, 2026
7324b1a
add rector (#1062)
LordSimal Mar 31, 2026
85b4907
Merge branch '5.x' into 5.next
dereuromark Mar 31, 2026
05084e2
Fix PHPStan error - getName() returns string not nullable
dereuromark Mar 31, 2026
f513207
Apply rector fixes
dereuromark Mar 31, 2026
743a893
Fix phpcs - use imports instead of FQN
dereuromark Mar 31, 2026
b31ee2e
Add ALGORITHM/LOCK support to Index operations (#1057)
jamisonbryant Mar 31, 2026
4120877
Bump codecov/codecov-action from 5 to 6 (#1063)
dependabot[bot] Apr 3, 2026
1e4c2d7
Fix documentation issues (#1064)
dereuromark Apr 4, 2026
122ce9f
Add pluginname navbar
josbeir Apr 4, 2026
1f572a6
Fix doc ci issues
josbeir Apr 4, 2026
6ef876d
docs(ci): fix remaining code fence issues
josbeir Apr 4, 2026
5a796ac
adjust Dockerfile to use NodeJS 24 and angie
LordSimal Apr 4, 2026
121bcd1
Bump vite from 7.3.1 to 7.3.2 in /docs (#1065)
dependabot[bot] Apr 7, 2026
22ddfff
fix property types related to CakePHP 5.4 changes
LordSimal Apr 11, 2026
405767f
fix property types related to CakePHP 5.4 changes (#1067)
dereuromark Apr 12, 2026
f93fd72
Merge remote-tracking branch 'origin/5.x' into 5.next
dereuromark Apr 12, 2026
7e46d61
Add support for PostgreSQL index access methods (gist, spgist, brin, …
dereuromark Apr 17, 2026
73b4bb9
rework docs to have more smaller pages
LordSimal Apr 17, 2026
5843667
Merge pull request #1070 from cakephp/5.x-rework-docs
dereuromark Apr 19, 2026
1fc7f8d
docs: restore reference content lost in docs split (#1073)
dereuromark Apr 19, 2026
d996bd9
Handle unified migration ledger in test migrator (#1072)
dereuromark Apr 19, 2026
1dbb2f7
Add citext column type support for PostgreSQL (#1069)
dereuromark Apr 19, 2026
b3cad09
Merge branch '5.x' into 5.next
dereuromark Apr 26, 2026
90194f2
Update PHPUnit version requirement to include 13.0
dereuromark Apr 30, 2026
bc56497
Set minimum-stability to stable
dereuromark Apr 30, 2026
242ad39
Merge pull request #1080 from cakephp/dereuromark/composer-stability
dereuromark Apr 30, 2026
1815d0d
Merge pull request #1079 from cakephp/dereuromark-patch-1
dereuromark Apr 30, 2026
69c3eac
Bump postcss from 8.5.8 to 8.5.12 in /docs
dependabot[bot] Apr 30, 2026
0ed971d
Merge pull request #1081 from cakephp/dependabot/npm_and_yarn/docs/po…
dereuromark Apr 30, 2026
c374fde
Merge pull request #1076 from cakephp/feature/status-all
dereuromark May 4, 2026
9fc2d25
Fix testCreateTableIndexWithWhere to look up the query by content (#1…
dereuromark May 10, 2026
720c586
Merge remote-tracking branch 'origin/5.x' into 5.next
dereuromark May 13, 2026
e62390e
Reduce PHPStan baseline by addressing actual issues (#1083)
dereuromark May 13, 2026
369d849
Merge remote-tracking branch 'origin/5.x' into 5.next
dereuromark May 13, 2026
78a1e6b
Update broken book links (#1087)
PioterLearns May 21, 2026
30698f8
Quote constraint name in MySQL DROP FOREIGN KEY statement (#1088)
dereuromark May 22, 2026
176df99
update stan (#1089)
LordSimal May 23, 2026
dd5f01a
Add security policy
jamisonbryant May 28, 2026
3978dca
Reference wiki version map instead of concrete table
jamisonbryant May 28, 2026
a5f2d90
Merge pull request #1090 from cakephp/add-security-policy
jamisonbryant May 28, 2026
5c60b25
Bump codecov/codecov-action from 6 to 7 (#1091)
dependabot[bot] Jun 11, 2026
7fc6cc1
Bump actions/checkout from 6 to 7 (#1093)
dependabot[bot] Jun 24, 2026
a3ce85b
Bump actions/cache from 5 to 6 (#1092)
dependabot[bot] Jun 24, 2026
400608e
npm update for docs
LordSimal Jul 1, 2026
46bab41
Do not auto-increment composite primary key columns in bake migration…
dereuromark Jul 3, 2026
ab5e25e
Auto-generate check constraint name when name is empty (#1098)
dereuromark Jul 5, 2026
f08f5bc
Make the database adapter available inside shouldExecute() (#1100)
dereuromark Jul 9, 2026
67044f1
5.next: Capability interfaces for reversible vs directional migration…
dereuromark Jul 9, 2026
6f5444b
Keep ON UPDATE clause when baking migrations (#1103)
jamisonbryant Jul 17, 2026
9c338c3
Fix test suite and static analysis with CakePHP 5.4 (#1108)
dereuromark Jul 24, 2026
d40e357
Track the plugin of executed seeds in cake_seeds (#1107)
dereuromark Jul 27, 2026
56ec71d
Add command descriptions to migration commands (#1109)
markstory Jul 29, 2026
bfd684e
Bump postcss from 8.5.16 to 8.5.25 in /docs (#1110)
dependabot[bot] Aug 3, 2026
5a30a5a
npm update for docs
LordSimal Aug 17, 2026
f575a7e
Pin action image and reduce permissions (#1111)
markstory Aug 31, 2026
27da5a5
Pin Rector's PHPStan dependency (#1117)
dereuromark Sep 15, 2026
2354f82
Group migration sets that share a migration history (#1116)
dereuromark Sep 19, 2026
f14030e
Update to PHPStan 2.3 (#1118)
LordSimal Oct 6, 2026
d8a23d8
Merge branch '5.x' into 5.next
josbeir Oct 7, 2026
9ef7b28
Fix 5.next migration dispatch analysis and snapshot expectation
josbeir Oct 7, 2026
dd55c9a
Merge 5.next into 6.x
josbeir Oct 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Security Policy

## Supported Versions

Security fixes are applied to all active versions listed in the
[version map](https://github.com/cakephp/migrations/wiki#version-map).
Versions marked as EOL no longer receive fixes.

## Reporting a Vulnerability

If you've found a security issue in CakePHP Migrations, please use the following procedure
instead of the normal bug reporting system. Instead of using the bug tracker,
or one of the support forums please send an email to security [at] cakephp.org. Emails
sent to this address go to the CakePHP core team on a private mailing list.

For each report, we try to first confirm the vulnerability. Once confirmed,
the CakePHP team will take the following actions:

* Acknowledge to the reporter that we've received the issue, and are
working on a fix. We ask that the reporter keep the issue confidential until we announce it.
* Get a fix/patch prepared.
* Prepare a post describing the vulnerability, and the possible exploits.
* Release new versions of all affected versions.
* Prominently feature the problem in the release announcement
20 changes: 12 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@ name: CI
on:
push:
branches:
- 3.x
- 4.x
- 4.next
- 5.x
- 5.next
paths-ignore:
- docs/**
pull_request:
branches:
- '*'
paths-ignore:
- docs/**
workflow_dispatch:

permissions:
Expand Down Expand Up @@ -54,7 +58,7 @@ jobs:
--health-retries 5

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
persist-credentials: false

Expand Down Expand Up @@ -114,7 +118,7 @@ jobs:
run: echo "date=$(date +'%Y-%m')" >> $GITHUB_OUTPUT

- name: Cache composer dependencies
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
Expand Down Expand Up @@ -162,7 +166,7 @@ jobs:

- name: Code Coverage Report
if: success() && matrix.php-version == '8.1' && matrix.db-type == 'mysql'
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v7

testsuite-windows:
runs-on: windows-2022
Expand All @@ -173,7 +177,7 @@ jobs:
PHP_VERSION: '8.2'

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
persist-credentials: false

Expand All @@ -191,7 +195,7 @@ jobs:
key: ${{ steps.key-date.outputs.date }}

- name: Cache PHP extensions
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ${{ steps.php-ext-cache.outputs.dir }}
key: ${{ runner.os }}-php-ext-${{ steps.php-ext-cache.outputs.key }}
Expand Down Expand Up @@ -219,7 +223,7 @@ jobs:
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Cache composer dependencies
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
Expand All @@ -236,7 +240,7 @@ jobs:
vendor/bin/phpunit --coverage-clover=coverage.xml

- name: Submit code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v7

cs-stan:
uses: cakephp/.github/.github/workflows/cs-stan.yml@5.x
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/deploy_docs_3x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@ on:
- 3.x
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0

- name: Push to dokku
uses: dokku/github-action@master
uses: dokku/github-action@cc7dec1d2b9fed249a14ae462bc953bba436f78c # v1.10.0
with:
git_remote_url: 'ssh://dokku@apps.cakephp.org:22/migrations-docs-3'
ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
7 changes: 5 additions & 2 deletions .github/workflows/deploy_docs_4x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@ on:
- 4.x
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0

- name: Push to dokku
uses: dokku/github-action@master
uses: dokku/github-action@cc7dec1d2b9fed249a14ae462bc953bba436f78c # v1.10.0
with:
git_remote_url: 'ssh://dokku@apps.cakephp.org:22/migrations-docs-4'
ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
8 changes: 6 additions & 2 deletions .github/workflows/deploy_docs_5x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,21 @@ on:
- 5.x
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0

- name: Push to dokku
uses: dokku/github-action@master
uses: dokku/github-action@cc7dec1d2b9fed249a14ae462bc953bba436f78c # v1.10.0
with:
git_remote_url: 'ssh://dokku@apps.cakephp.org:22/migrations-docs-5'
ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
branch: '5.x'
27 changes: 27 additions & 0 deletions .github/workflows/docs-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Documentation Validation

on:
push:
branches:
- 5.x
paths:
- 'docs/**'
- '.github/**'
pull_request:
paths:
- 'docs/**'
- '.github/**'

jobs:
validate:
uses: cakephp/.github/.github/workflows/docs-validation.yml@5.x
with:
docs-path: 'docs'
vitepress-path: 'docs/.vitepress'
enable-config-js-check: true
enable-json-lint: true
enable-toc-check: true
enable-spell-check: true
enable-markdown-lint: true
enable-link-check: true
tools-ref: '5.x'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ error.log
/tests/test_app/config/TestsMigrations/schema-dump-test.lock
/tests/test_app/Plugin/TestBlog/config/Migrations/*
.phpunit.cache
.phpcs.cache
.ddev

# IDE and editor specific files #
Expand Down
2 changes: 1 addition & 1 deletion .phive/phars.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<phive xmlns="https://phar.io/phive">
<phar name="phpstan" version="2.1.33" installed="2.1.33" location="./tools/phpstan" copy="false"/>
<phar name="phpstan" version="2.3.0" installed="2.3.0" location="./tools/phpstan" copy="false"/>
</phive>
61 changes: 36 additions & 25 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,25 +1,36 @@
# Basic docker based environment
# Necessary to trick dokku into building the documentation
# using dockerfile instead of herokuish
FROM ubuntu:22.04

# Add basic tools
RUN apt-get update && \
apt-get install -y build-essential \
software-properties-common \
curl \
git \
libxml2 \
libffi-dev \
libssl-dev && \
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php && \
apt-get update && \
apt-get install -y php8.1-cli php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl php8.1-opcache php8.1-sqlite &&\
apt-get clean &&\
rm -rf /var/lib/apt/lists/*

WORKDIR /code

VOLUME ["/code"]

CMD [ '/bin/bash' ]
# ----------------------
# 1. Build stage
# ----------------------
FROM node:24-alpine AS builder

# Git is required because docs/package.json pulls a dependency from GitHub.
RUN apk add --no-cache git openssh-client

WORKDIR /app/docs

# Copy dependency manifests first to preserve Docker layer caching.
COPY docs/ ./
RUN npm ci

# Increase max-old-space-size to avoid memory issues during build
#ENV NODE_OPTIONS="--max-old-space-size=8192"

# Build the site.
RUN npm run docs:build

# ----------------------
# 2. Runtime stage (angie)
# ----------------------
FROM docker.angie.software/angie:latest AS runner

# Copy built files
COPY --from=builder /app/docs/.vitepress/dist /usr/share/angie/html

# Expose port
EXPOSE 80

# Health check (optional)
HEALTHCHECK CMD wget --quiet --tries=1 --spider http://localhost:80/ || exit 1

# Start angie
CMD ["angie", "-g", "daemon off;"]
13 changes: 8 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@
"require": {
"php": ">=8.2",
"cakephp/cache": "^5.3.0",
"cakephp/database": "^5.3.0",
"cakephp/database": "^5.3.2",
"cakephp/orm": "^5.3.0"
},
"require-dev": {
"cakephp/bake": "^3.3",
"cakephp/cakephp": "^5.3.2",
"cakephp/cakephp-codesniffer": "^5.0",
"phpunit/phpunit": "^11.5.3 || ^12.1.3"
"phpunit/phpunit": "^11.5.3 || ^12.1.3 || ^13.0"
},
"suggest": {
"cakephp/bake": "If you want to generate migrations.",
"dereuromark/cakephp-ide-helper": "If you want to have IDE suggest/autocomplete when creating migrations."
},
"minimum-stability": "dev",
"minimum-stability": "stable",
"prefer-stable": true,
"autoload": {
"psr-4": {
Expand Down Expand Up @@ -68,14 +68,17 @@
"@stan",
"@test"
],
"cs-check": "phpcs --parallel=16 -p",
"cs-fix": "phpcbf --parallel=16 -p",
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"phpstan": "tools/phpstan analyse",
"stan": "@phpstan",
"stan-baseline": "tools/phpstan --generate-baseline",
"stan-setup": "phive install",
"lowest": "validate-prefer-lowest",
"lowest-setup": "composer update --prefer-lowest --prefer-stable --prefer-dist --no-interaction && cp composer.json composer.backup && composer require --dev dereuromark/composer-prefer-lowest && mv composer.backup composer.json",
"rector-setup": "cp composer.json composer.backup && composer require --dev rector/rector:\"~2.3.1\" phpstan/phpstan:\"~2.1.40\" && mv composer.backup composer.json",
"rector-check": "vendor/bin/rector process --dry-run",
"rector-fix": "vendor/bin/rector process",
"test": "phpunit",
"test-coverage": "phpunit --coverage-clover=clover.xml"
}
Expand Down
26 changes: 0 additions & 26 deletions docs.Dockerfile

This file was deleted.

3 changes: 3 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
*/public/
.vitepress/cache
Loading
Loading