When thinking about “child” environments (e.g., develop, preprod) and their relationship to production environments, think of the code separately from the content in the database, because they move through environments in opposite directions.
Best practice dictates that: Code moves up; content moves down.
Content moves downward (production → develop) because the production database is the authoritative source of content and where the most current content changes are saved. This one-way movement of content protects the production database from being overwritten and losing data.
Code, on the other hand, moves upward (develop → production) because it should be certain that new code is free from errors and will work as expected before deploying it to the production environment.