Ok, since I wrote CakeSchema, I suppose I could elaborate on some of
its uses. I think most people have understood what it was intended to
do, though I have not thoroughly read all of the previous messages.

The basic idea behind CakeSchema is to have a complete snapshot of
your application's data structure at a given point in time. With this
in mind it would probably be wise to add a timestamp option to go
along with the version number option. In any case, if you are using a
proper SCM you do not even need to use the snapshots. CakeSchema can
work for a variety of workflows and situations.

One possible workflow follows:
1) Design your database with DbDesigner or some other gui.
2) Export the sql for your preferred database server
3) Import the sql via your database GUI
4) Scaffold your application
5) make any desired adjustments
6) cake schema generate
7) use the before and after callbacks to populate some initial data
8) commit to svn

Voila. You have the first version of your application ready. Let other
developers use "cake schema run create" so they can start from the
same point.

But now I need to make some changes.....
1) Open up your database GUI
2) Make all the needed changes
3) cake schema generate
4) commit to svn

Now all someone has to do is "cake schema run update" and they have
all the latest changes. If a new developer comes into the picture then
they can create. If you want to see the difference between two schemas
you can do a dry run through the console or diff the revisions.

There are many other possibilities. I have heard of people who
actually like creating the schema in php with their favorite text
editor. In addition, since each schema is a class that extends
CakeSchema and is loaded through Cake you have all the advantages of
the framework to do whatever your imagination may desire. For example,
you may want to provide a simple web based installation for you
application. Well, with a few lines of code you could make that
happen.

In general, I think CakeSchema covers many use cases and as always,
enhancement tickets are more than welcome.

Bake on.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to