| Server IP : 35.80.110.71 / Your IP : 216.73.216.21 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/client-portal-laravel/current/docs/notes/ |
Upload File : |
Seed all the new posts (94 across four categories)
php artisan blog:seed-json --new-only
--new-only skips any slug that already exists in blog_posts. Only the 94 new ones get inserted.
Or one category at a time
php artisan blog:seed-json --new-only --category=architecture # 23 posts
php artisan blog:seed-json --new-only --category=development # 25 posts
php artisan blog:seed-json --new-only --category=devops # 23 posts
php artisan blog:seed-json --new-only --category=infrastructure # 23 posts
Dry-run first (recommended)
php artisan blog:seed-json --new-only --dry-run
Prints Would seed: <slug> for each candidate without writing. Expect 94 lines. If you see anything else, stop and investigate before
running for real.
Expected output
After the live run:
Posts: 94 created, 0 updated, X skipped
Where X ≈ 344 (the existing posts that --new-only filtered out).
Useful flags reference
┌──────────────────────────────┬───────────────────────────────────────────────────────────────────────┐
│ Flag │ Purpose │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ --new-only │ Skip slugs already in DB (what you want) │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ --category=<slug> │ Limit to one category directory │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ --published-after=2026-08-02 │ Limit by date (all new posts are 2026-08-02 or later) │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ --dry-run │ Preview without writing │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ --nullify-images │ Set featured_image_path = null if images aren't on this env's CDN yet │
└──────────────────────────────┴───────────────────────────────────────────────────────────────────────┘
If featured_image_path URLs point at images that don't exist in this environment yet, you'll see a warning at the end of the run. Either
upload the images (numbers 345–438) to https://scopeforged.com/storage/blog/posts/{n}-{slug}.webp, or add --nullify-images to clear the
paths and upload later.