How can I take advantage of new versions of SeedCode Complete?
If we release a BIG new version, like this version of Complete compared to our FM8.5 version, then there is no easy way to take advantage of it other than by perhaps raiding it for features. You'll have modified the way the solution looks and works (at least we hope you have) so you can't just plop the new one in and get to work. You can of course re-make your changes in the new one, but if you've *really* customized yours, you may not want to. Hence, raiding it for features.
For smaller versions, what we call new "builds" we'll post notes about how to make the changes in your copy. This is what we do for bug fixes, etc. Here is an example from our Free Calendar: http://www.seedcode.com/pmwiki/pmwiki.php?n=SeedCodeCalendarFree.VersionHistory
If you're making the changes, however, and developing new features for SeedCode Complete, we do have a set of "update" scripts that can help you roll out your changes. Those are described in the following section.
How can I develop on an offline copy of SeedCode Complete and then merge my code changes back into the production system?
The updating scripts described here were introduced in version 2.3 of SeedCode Complete.
SeedCode Complete is separated into an interface file and a data file. The interface file (SeedCodeComplete.fp7) doesn't really have any data in it, just a few value lists, so you can take an offline copy, work with it, and then load that copy back on your server once you have your new features tested and debugged.
While that works great, most substantive changes to your solution will require you to change the data file as well (SeedCodeDate.fp7). Changes made here can also be uploaded to the server, but you'll need to import all the data that's in the currently live copy before you can replace it with your new copy.
Fortunately, SeedCode Complete contains a scripted routine to help you move your live data into your new data file. Instructions for taking advantage of this follow. If you're new to data migration please read this through all the way before starting...
1. Backup everything.
And take all the files off the server. You'll do this locally, not on served files. No cheating, don't skip this.
2. Move your old data to a new location.
Your old data file is the one with the most up to date data, but which has older, now obsolete code. Create a new folder beside SeedCodeComplete.fp7 called "import from" and place your old data file in there. Rename it "SeedCode_My_Data.fp7". (Use that name, even of you've renamed your file previously.)
3. Clone your new data file.
Your new data file is the one with the latest code changes, but with older, now obsolete data. Open this file and select File / Save A Copy As.. and select "Clone". Now move this file to the same folder containing SeedCodeComplete
.fp7 and remove the word "Clone" and the space in front of it from the name, so the file now has the same name as the data file you used to have here. (If you've previously renamed SeedCodeData
.fp7, keep your name for this clone, just remove "Clone" and the space in front of it.)
When you're done, your folder should look like this...
...where SeedCodeData.fp7 is the now empty clone of your new code base, and SeedCode_My_Data.fp7 is the renamed version of the file containing all the data you wish to import into the new version.
4. Run the Update script.
Open SeedCodeComplete.fp7 using a Full Access account and manually run the script "Migrate the data file" in the Utilities folder of scripts. Do not disturb this while it runs: if you have a lot of data this could take some time as it imports data from every table in SeedCodeData.
5. When you're done...
Be sure to remove the "import from" folder and the data file within it, keeping the file in a save place or archiving it. Now load the files back to your server and enjoy.
Here are some additional things to keep in mind...
All there SeedCode
files have accounts, passwords, and privilege set in them. These need to be the same across all files. If you've been working on a copy of SeedCodeComplete
.fp7 and users have added or changed accounts in the live copy of SeedCodeComplete
.fp7 you have no way to bring those accounts back in to your new copy and will need to recreate them. So it is best to ask users to freeze account creation and modification while you're working on an offline copy. Using External Authentication
makes this a moot point.
There is also a media file (SeedCodeMedia
.fp7). You should not need to modify that and if you do, we assume you know what you're doing and how to migrate your data.
The "Update..." script in SeedCode
Complete resets the next serial number in all tables. To to this it uses the original unique ID for each table (called "_id" in our files). Do not use a different field for your ID. Our scripts support you changing the name of the ID field, but not deleting it and creating a new one.
If your work involved creating new tables, do not delete the contents of those tables in step 3 above. You won't have data for those new tables in your old file, and thus you want those tables left alone. Note, however, that subsequent updates to SeedCodeData
.fp7 won't bring in data from these new tables unless you add steps for these tables to the following scripts:
Make sure the current data file is a clone
Import data from the old file
These scripts are pretty simple and you can use the existing steps for another table as your template for new script for your table. You'll need a copy of your data file named "SeedCode
_My_Data in the "import from" folder in order to begin editing the "Import data from the old file" script. And remember, all those import steps are set to use "matching names" with "perform auto enter..." off.
If you deleted data tables, delete references to these tables in the two scripts mentioned above before updating.
Our import process increments the serial numbers in each table. To be absolutely certain new serial numbers will be unique, we append a new text character-- an "i" to the text prefix already there. So the next value after "CON00001
" would be "CONi00002
" after our update runs. You can change the value being used from an "i" to something else by editing the first Set Variable line in the script "Import data from the old file".
Users may have changed value lists in SeedCodeData
.fp7 while you were making your code changes. Modifications to value lists are not brought back over as part of this update process. You can either look through these value lists by hand to make sure nothing changed, ask you users to refrain from changing value lists while you're making changes, or alter your users' privilege sets to prohibit modification of value lists while you're developing on an offline copy.
You may also want to change their privilege sets so they can't modify their passwords while you're developing. Just don't forget to change them back. ;-)