For simplicity\'s sake. I\'m using Fluent NHibernate\'s Automapping combined with NHibernate\'s SchemaUpdate during runtime. On each run Automapper creates mappings for all enti
It depends on how critical the data is! I doubt that's such a good idea for a banking system. I have not had any problems with the update apart from one thing. Sometimes it does not rename properly. Further more it's a security risk connecting with an account that can modify the schema like that :)
I wouldn't risk it. What works well is to run it on a staging server that has been restored from production, then use a database comparison tool (such as Red Gate) to examine the changes and generate a script.
For this to be able to run in production code, the account that the production application uses to connect to your database would have to have permission to change the database schema.
That alone should deter you from this approach, irrespective of the quality/reliability of the NHibernate code.
You may want to consider that SchemaUpdate will always make additive and non-destructive changes, resulting in stale columns and nullable columns where they should be non-nullable.
In other words, absolutely not for production use.