360Deploy

From 360Works Product Documentation Wiki
(Difference between revisions)
Jump to: navigation, search
(Miscellaneous tips)
 
(25 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
==Overview==
 
==Overview==
  
360Deploy is a product aiming to simplify the tedious process of deploying a development database onto an existing production database. Developers working on a file can deploy changes made to their database structure at the click of a button while avoiding the downtime and labor traditionally associated with the process. All that is required is the use of our plug-in, some simple configuration, and click Deploy!
+
360Deploy is a product that simplifies the tedious process of deploying changes in a development database to an existing production database. This can be done with the click of a button while eliminating human error and reducing the downtime traditionally associated with the process. All that is required is some simple configuration, and click Deploy!
  
 
For a better understanding, consider the typical FileMaker file development scenario of a production and development server. The production server continuously hosts solutions for clients. The development/staging file is the database where alterations are being made by developers to enhance utility and better serve client's needs. Overhauling the old file to reflect the new one typically involves a process during which production is shut down and administrators sift through tables, scripts, and fields to reflect updates. We seek to bypass this arduous task by automating the entire series of events.
 
For a better understanding, consider the typical FileMaker file development scenario of a production and development server. The production server continuously hosts solutions for clients. The development/staging file is the database where alterations are being made by developers to enhance utility and better serve client's needs. Overhauling the old file to reflect the new one typically involves a process during which production is shut down and administrators sift through tables, scripts, and fields to reflect updates. We seek to bypass this arduous task by automating the entire series of events.
Line 17: Line 17:
 
#Includes import of scripts and calculations
 
#Includes import of scripts and calculations
 
#Backs up production file in event changes want to be reverted
 
#Backs up production file in event changes want to be reverted
 +
 +
== System requirements ==
 +
* 360Deploy requires FileMaker Pro or Advanced 16 to run the actual import process.
 +
* Production databases must be hosted on FileMaker Server 14 or later
 +
* For technical reasons, FileMaker Cloud is NOT compatible with 360Deploy
 +
 +
== Licensing ==
 +
There are four types of licenses for 360Deploy. Pricing for each license type is available at http://360works.com/360Deploy by clicking the 'pricing' button.
 +
* A free demo license, which can deploy to any number of servers. It has one important limitation, which is that it can only be used to deploy databases named '360Deploy Demo Solution'
 +
* Express Edition: This allows deployment of a single FileMaker solution (this can be a multi-file solution) to a single deployment server
 +
* Enterprise License: This allows deployment of unlimited FileMaker solutions to a single deployment server. It is not legal to use this license for multiple different clients, for instance in a shared hosting server or vertical market hosted server.
 +
* Solution Bundle License: This allows deployment of a single FileMaker solution (this can be a multi-file solution) to unlimited deployment servers. The deployed solution can have different names for different customers.
 +
 +
An Enterprise License is included with the 360Works Portfolio License (http://360works.com/portfolio) at no additional charge. Any current Portfolio License holders will be able to immediately start using 360Deploy.
  
 
==Setup==
 
==Setup==
 +
View the documentation here on how to get started:
 +
[https://s3.amazonaws.com/static.360works.com/plugins/360Deploy/360Deploy+Instructions.pdf 360Deploy Instructions]
  
First, install 360Deploy on both the Production and Development servers by running the installer for the operating system that you are using. If you are using the same server for both production and development files, this only needs to be run once. The install is complete and successful when the 360Deploy page is opened in your default browser.
+
== Archive folder ==
 +
Every time that you run a deployment, 360Deploy will put a copy of the previous production database into a timestamped directory in the FileMaker Server documents directory. This way, if anything goes wrong (due to a problem with the deployment, a programming error in the new version, or any other reason), you can simply place this timestamped archive version back into the live database directory effectively roll back to the both the structure and data that existed prior to running the deployment. You can find the archive folder at:
  
Next, open the 360Deploy.fmp12 file. You can complete the set up process on any machine that has FileMaker Pro installed. Running the deploy process from the development machine has shown quicker deploys in testing. The default login credentials are "360Deploy" for the username and password. On first login, you will be prompted to change the password for this account. The file will guide you through the set up process:
+
Mac:
 +
<pre>/Library/360Works/Applications/MigrationBackups</pre>
  
* (Optional) Store server log-in credentials for quicker processing. This will skip over password prompts during the import process.
+
Windows:
* Populating IP addresses and account credentials for both servers.
+
<pre>C:/Program Files/360Works/Applications/MigrationBackups</pre>
* Choosing which files you want to deploy to the production server
+
* Copying and pasting of a script folder and generate scripts to the production layout
+
  
Make sure to click the "Verify" button after steps 3 and 4 to make sure that you have the Production and Development sides configured correctly.  
+
Keep in mind that this archive directory is never automatically deleted, and can potentially consume a lot of disk space if your solution is large. It's a good idea to manually clean up this directory periodically.
  
 +
Also keep in mind that if you are using containers with external storage, that container data is shared between the old and new database versions - there is no separate copy placed into the archive folder. This speeds up the import and conserves disk space, but it also means that if you do need to roll back the database version, changes that were made to the external container data are not rolled back. Use FileMaker Server's built-in backup feature to guarantee a complete backup including a separate copy of all container data.
  
'''Required database changes'''
+
== Scheduling after-hour imports ==
* Databases should be password protected (required by default in FileMaker Server)
+
The script "Upload Files and Start Migration ( $~configuration_id )" is Server Side compatible, and can be used in a Server Side Schedule, which is our recommended way of doing a scheduled deployment.  To use this script, we recommend creating a wrapper script, where you can pass in the id of the configuration to the "Upload Files and Start Migration" script.
* Have administrative credentials for both FileMaker servers
+
* If the startup script does any write operations (i.e. Set Field or New Record), then either disable these script steps by commenting them out, or create a separate account for running the deploy operation and do not run these steps if running with this account. For example:
+
  
 +
See the example script in the 360Deploy.fmp12 file called "PSOS : 360Store Deployment"
  
[[File:Screen_Shot_2017-08-24_at_4.20.00_PM.png]]
+
To get the id of your configuration, open the data viewer and evaluate the "Configuration::__id" field while you are on the main layout. This will be the value you pass in.
  
 +
== Miscellaneous tips ==
 +
=== Deleting / adding / renaming fields ===
 +
Renaming or adding fields in the development database will work fine during the import.  If you add fields in your development copy, be aware that this field will be empty after you migrate these changes to the production server, as there will be no data on the production server to populate it. 
 +
Deleting fields will work as expected, the field will be removed from the production copy.
  
'''Advanced Options'''
+
=== Renaming tables ===
+
360Deploy uses the FMDataMigration tool, which will match up tables by id and name first, if no match then by name alone, then by id alone. Renaming tables will work fine as long as a new table is not created using the renamed tables previous name.
*You can optionally edit the "360Deploy post-impor actions" script in your development file to run actions that you might want to happen after the import such as creating new account privileges from a table of users.
+
*360Deploy also has the option to include a version field for your solution. The value of this field will be passed to your post-import script as a script parameter to conditionally run any post-import operations
+
*360Deploy also has the option to pause the databases so your users can not continue to add/modify data while the deployment is running. They will however have read access to the files. Using this option may cause the deployment to seem to hang while importing records. It is important to note that when using this option if the process seems to hang on importing records, open the FileMaker Server Admin console and resume the database so the import can continue.  
+
  
 +
=== Viewing Errors ===
 +
If there is an error with a deployment, there will be a record created in the @AppLog table.  You will need to open this layout manually and scroll to the last record.  Look in the "errorDescription" field for more information about the most recent error.
  
==Troubleshooting==
 
===Import hangs with no dialog on screen===
 
This probably indicates that a startup script is halting the process. Add a section like the screenshot shown above at the top of the startup script to exit the startup script for automated deployments.
 
  
===Import hangs with import dialog showing===
+
<center>[[File:ReturntoMainPage.png| 140 px |link=http://www.360works.com/products/ |alt= 360Works Plugins for FileMaker |FileMaker Help]]</center>
If this occurs, try resuming the production database using FileMaker Server Admin Console. The production databases are normally paused during the import to prevent users from making changes (which will be lost if the import has already run for that table), but sometimes this can cause the import to hang. In our experience, this is usually a one-time problem: Resuming the database once seems to fix the problem permanently, even for future imports that are not manually resumed.
+

Latest revision as of 01:48, 4 December 2018

Contents

[edit] Requirements

[edit] Overview

360Deploy is a product that simplifies the tedious process of deploying changes in a development database to an existing production database. This can be done with the click of a button while eliminating human error and reducing the downtime traditionally associated with the process. All that is required is some simple configuration, and click Deploy!

For a better understanding, consider the typical FileMaker file development scenario of a production and development server. The production server continuously hosts solutions for clients. The development/staging file is the database where alterations are being made by developers to enhance utility and better serve client's needs. Overhauling the old file to reflect the new one typically involves a process during which production is shut down and administrators sift through tables, scripts, and fields to reflect updates. We seek to bypass this arduous task by automating the entire series of events.

The entire process takes only as long as it takes to import data based on your database size, during which the databases are paused. This allows files to be updated without worrying about how often or when the changes occur. The set up consists of installing our plug-in in the FileMaker client running the deploy file, and some simple script copy/pasting.

[edit] Why use 360Deploy?

Altering live databases has traditionally been a tedious, intrusive task. It consists of server downtime and technical labor at the expense of company resources. 360Deploy is capable of doing that in minutes by seamlessly automating the process. What our software does is create a clone of the development database, transfers it to the production server, and then imports data from production into the clone to absorb the new architecture. As a safeguard, a back-up of the production file is also created on the machine before the imports occur should clients wish to revert back to the old structure.

  1. Ideal for frequent upgrades to a databases of any size
  2. Minimizes file downtime, only pausing file temporarily during import of data
  3. Drastically reduces complexity and time required to upgrade new database architecture
  4. Includes import of scripts and calculations
  5. Backs up production file in event changes want to be reverted

[edit] System requirements

  • 360Deploy requires FileMaker Pro or Advanced 16 to run the actual import process.
  • Production databases must be hosted on FileMaker Server 14 or later
  • For technical reasons, FileMaker Cloud is NOT compatible with 360Deploy

[edit] Licensing

There are four types of licenses for 360Deploy. Pricing for each license type is available at http://360works.com/360Deploy by clicking the 'pricing' button.

  • A free demo license, which can deploy to any number of servers. It has one important limitation, which is that it can only be used to deploy databases named '360Deploy Demo Solution'
  • Express Edition: This allows deployment of a single FileMaker solution (this can be a multi-file solution) to a single deployment server
  • Enterprise License: This allows deployment of unlimited FileMaker solutions to a single deployment server. It is not legal to use this license for multiple different clients, for instance in a shared hosting server or vertical market hosted server.
  • Solution Bundle License: This allows deployment of a single FileMaker solution (this can be a multi-file solution) to unlimited deployment servers. The deployed solution can have different names for different customers.

An Enterprise License is included with the 360Works Portfolio License (http://360works.com/portfolio) at no additional charge. Any current Portfolio License holders will be able to immediately start using 360Deploy.

[edit] Setup

View the documentation here on how to get started: 360Deploy Instructions

[edit] Archive folder

Every time that you run a deployment, 360Deploy will put a copy of the previous production database into a timestamped directory in the FileMaker Server documents directory. This way, if anything goes wrong (due to a problem with the deployment, a programming error in the new version, or any other reason), you can simply place this timestamped archive version back into the live database directory effectively roll back to the both the structure and data that existed prior to running the deployment. You can find the archive folder at:

Mac:

/Library/360Works/Applications/MigrationBackups

Windows:

C:/Program Files/360Works/Applications/MigrationBackups

Keep in mind that this archive directory is never automatically deleted, and can potentially consume a lot of disk space if your solution is large. It's a good idea to manually clean up this directory periodically.

Also keep in mind that if you are using containers with external storage, that container data is shared between the old and new database versions - there is no separate copy placed into the archive folder. This speeds up the import and conserves disk space, but it also means that if you do need to roll back the database version, changes that were made to the external container data are not rolled back. Use FileMaker Server's built-in backup feature to guarantee a complete backup including a separate copy of all container data.

[edit] Scheduling after-hour imports

The script "Upload Files and Start Migration ( $~configuration_id )" is Server Side compatible, and can be used in a Server Side Schedule, which is our recommended way of doing a scheduled deployment. To use this script, we recommend creating a wrapper script, where you can pass in the id of the configuration to the "Upload Files and Start Migration" script.

See the example script in the 360Deploy.fmp12 file called "PSOS : 360Store Deployment"

To get the id of your configuration, open the data viewer and evaluate the "Configuration::__id" field while you are on the main layout. This will be the value you pass in.

[edit] Miscellaneous tips

[edit] Deleting / adding / renaming fields

Renaming or adding fields in the development database will work fine during the import. If you add fields in your development copy, be aware that this field will be empty after you migrate these changes to the production server, as there will be no data on the production server to populate it. Deleting fields will work as expected, the field will be removed from the production copy.

[edit] Renaming tables

360Deploy uses the FMDataMigration tool, which will match up tables by id and name first, if no match then by name alone, then by id alone. Renaming tables will work fine as long as a new table is not created using the renamed tables previous name.

[edit] Viewing Errors

If there is an error with a deployment, there will be a record created in the @AppLog table. You will need to open this layout manually and scroll to the last record. Look in the "errorDescription" field for more information about the most recent error.


 360Works Plugins for FileMaker
Personal tools
Namespaces

Variants
Actions
Plug-in Products
Other Products
Navigation
Toolbox