In my app I'd like to offer a demo account, so potential users can log in and play around with the system to their hearts content. To prevent the data from becoming too cluttered, I intend to reset the reference data for this account every day.
I see two possible options of achieving this, but I'd appreciate some feedback from the group before I dive in:
1. Run a separate instance of the app (probably on a separate machine) using a different database, create fixtures for all my base reference data, and get cron call 'rake db:bootstrap' every night. This is fairly straightforward but the downside is having to run another server (or VPS) and having a more complicated deployment process.
2. Use the production instance of the app and database and write some explicit code which deletes and reloads the reference data for this account only. This might be more work to set up, is a little riskier, but there is no separate deployment issue since it's using the production application. The demo account will also be on a production server so there will be performance benefits.
There are advantages and disadvantages to both methods, but at the moment I'm more inclined to go for (2). I don't really think having the reference data in Ruby code rather than YAML is a disadvantage, and I like that fact that deployment isn't affected -- we deploy the app and the demo account is available automatically.
Am I thinking along the right lines or is there a glaringly obvious third way which I'm failing to see?