How does Yii handle the scenario when after the initial CRUD files generation I manually make some changes to these files and then update DB schema? Yii Guide suggests me to regenerate all files:
If you make any change to your code or configuration, please re-enter yiic shell so that the new code or configuration can take effect.
But this will essentially overwrite all manual changes done to these files. One way to avoid this is to manually create another set of CRUD classes which inherit from the corresponding generated ones and make all manual changes only there. But shouldn't this case be handled by yiic automatically instead?
Sorry for confusion. The guide actually means that once yiic shell is running, your change to configuration will not be effective until you re-run yiic shell (because the configuration was read when yiic shell starts).
Yes, creating another set of CRUD classes is a solution, but it would make the files very messy. And merging the generated code into modified code is not an easy task and is error prone. So Yii is taking an easy way, i.e., you either skip or overwrite it.
Makes sense. So the yiic should be used only for initial generation of CRUD files and all future maintenance should be done manually (except for very simple tables), right?
That's right. It's more like a prototyping tool.