Three bugs found deploying a fresh clone to seedproject.com, each fatal to the documented "spin up a new site" flow: - .gitignore: the unanchored `public/` pattern (meant for the root build output) also ignored api/public/ (the framework's front controller, controllers, models, views) and app/public/ (theme static assets: fonts, avatar placeholder). Neither was ever committed, so every fresh clone 500'd on all /api routes and 404'd on theme assets. Anchor the pattern to /public/ and commit both directories. - api/install/dump.sql: stray `CREATE DATABASE ochenta80_db123` (SQLyog export artifact) aborted `php console app:install` for any non-privileged DB user. The schema must import into whatever database the installer connects to. - PluginManager::boot() queries sp_plugins on every request, but no shipped schema creates it — even a successful install 500'd on every endpoint. Add migration 002_create_sp_plugins.sql matching the columns PluginManager reads/writes. Also empty api/system/errors.json, which shipped with stale error logs from an unrelated project. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C3JqxTe7TKaR7xufcMr7Ds
14 lines
622 B
SQL
14 lines
622 B
SQL
-- PluginManager::boot() runs on every request and requires this table.
|
|
CREATE TABLE IF NOT EXISTS `sp_plugins` (
|
|
`plugin_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`slug` VARCHAR(191) NOT NULL,
|
|
`name` VARCHAR(255) NOT NULL DEFAULT '',
|
|
`version` VARCHAR(32) NOT NULL DEFAULT '1.0.0',
|
|
`description` TEXT NULL,
|
|
`author` VARCHAR(255) NOT NULL DEFAULT '',
|
|
`enabled` TINYINT(1) NOT NULL DEFAULT 0,
|
|
`installed_at` DATETIME NULL,
|
|
`updated_at` DATETIME NULL,
|
|
PRIMARY KEY (`plugin_id`),
|
|
UNIQUE KEY `uq_sp_plugins_slug` (`slug`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|