← Journal

Engineering / 2026

Notes from a RailsPress Migration

Written by
Fieldwork Editors
Published
Reading time
7 minutes
Vintage letterpress with a rust-red proof sheet in a dark green workshop

Vintage letterpress with a rust-red proof sheet in a dark green workshop Focal point: 68% / 55%

Inventory before import

We began with a list of content types, URL patterns, media assumptions, and undocumented habits. The database was only one part of the system we were moving.

The useful questions were concrete: Which slugs must remain stable? Which categories still help readers? Which images have enough resolution for the new card crop? Which drafts should stay behind?

post = Railspress::Post.find_or_initialize_by(slug: source.slug)
post.assign_attributes(title: source.title, status: :draft)
post.save!

Starting imported records as drafts created a deliberate editorial checkpoint. Redirects and attachment verification happened before publication, not after readers found the gaps.