StrataFrame Forum

Overview for a newb

http://forum.strataframe.net/Topic4631.aspx

By David Farrell-Garcia - 11/18/2006

Here is what I want to do:

1.  Deploy my application with both a sample database and an empty database

2.  Allow user to create new databases based on the structure of the the deployed database.

I have created a DDT profile and imported a database that I already had in SQLExpress. I used the "Import Database" feature.  I figured this would import that metadata but found that it also imported all the records. The help file mentioned that it imported the structure but did not mention that it also imported the records. Did I miss an option?  I suppose that i could use that as my sample database. 

Deployment:  How do I deploy both this sample database (with all datas records) as well as allow the end-user to create one or more databases based on the structure of the sample database?  I will be using InstallAWare to create the install script.  Do I deploy the sample database to the database server via my install script and then let the user open that sample company or create a new company based on that metadata?  Or can the end-user deploy both the sample data asnd create database via a StrataFrame dialog included in my applicaition using the DDT Deployment package? 

Sorry for all the basic questions. I know some of these may be answered here already but i need a step by step deployment guide all in one place to get me started.

By Trent L. Taylor - 11/19/2006

[/quote][quote]I figured this would import that metadata but found that it also imported all the records. The help file mentioned that it imported the structure but did not mention that it also imported the records. Did I miss an option? 

It actually does not have this ability.  Why do you think that the record were imported?  Only the meta-data structure is imported.  At this point, the database itself will only exist in the location from which you imported since the DDT has never deployed the structure.  Does that make sense?  The only tool that we have that will import and deploy data are the Deployment Data packages.

How do I deploy both this sample database (with all datas records) as well as allow the end-user to create one or more databases based on the structure of the sample database?

You can package up any data you wish to include in the package file using the Deployment Data.  I do not understand the second have of you sentence...what are you wanting the end-user to do?

I will be using InstallAWare to create the install script.  Do I deploy the sample database to the database server via my install script and then let the user open that sample company or create a new company based on that metadata?

We use InstallAware ourselves and teh StrataFrame setup will soon be changed to support InstallAware as well.  My recommendation is to create an installer class and DLL.  InstallAware works very well with running .NET installer classes.  Just create a .NET class library that has a reference to MicroFour StrataFrame Base.dll and MicroFour StrataFrame DBEngine.dll.  Create a single installer class, and in the OnAfterInstall event your will use the DatabaseMigrator class to deploy your structure.  I will try to get you a simple sample for you to look at.

 Or can the end-user deploy both the sample data asnd create database via a StrataFrame dialog included in my applicaition using the DDT Deployment package?

You can use the same dialogs that you use in the DDT editor.  They are made available to you so you do not have to create your own if you so choose.  I will put a snippet our here on this as well when I post the other.

By Trent L. Taylor - 11/19/2006

David,

Below is a link to a sample that we created to show how to use the DatabaseMigrator class.  There is also an Installer class sample that shows you how to integrate this with InstallAware.

http://forum.strataframe.net/FindPost4635.aspx 

By David Farrell-Garcia - 11/19/2006

[b]it actually does not have this ability.  Why do you think that the record were imported?  Only the meta-data structure is imported.  At this point, the database itself will only exist in the location from which you imported since the DDT has never deployed the structure.  Does that make sense?  The only tool that we have that will import and deploy data are the Deployment Data packages.

I will double check then.  I thought that all I did after deploying the new database to the server was run the app, select the new database and was surprised to see it contained all the data. I must have done something wrong and will re-check my work.

[b]You can package up any data you wish to include in the package file using the Deployment Data.  I do not understand the second have of you sentence...what are you wanting the end-user to do?

Many of our clients operate multiple companies with our accounting software.  In our current app when they start up they are given a choice of opening an existing company dataase or creating a new company database.  If they choose new then the database is created in the location they select.  I think that we are able to do much the same thing with SF right?  Or not? 

[b]We use InstallAware ourselves and teh StrataFrame setup will soon be changed to support InstallAware as well.  My recommendation is to create an installer class and DLL.  InstallAware works very well with running .NET installer classes.  Just create a .NET class library that has a reference to MicroFour StrataFrame Base.dll and MicroFour StrataFrame DBEngine.dll.  Create a single installer class, and in the OnAfterInstall event your will use the DatabaseMigrator class to deploy your structure.  I will try to get you a simple sample for you to look at.

That would be great. Thanks

By Trent L. Taylor - 11/19/2006

I think that we are able to do much the same thing with SF right?  Or not?

At the moment, you cannot change the database name when you deploy a package.  In other words, if the database name is "MyDatabase" in the DDT package, you cannot rename it to "MyDatabase2" when it deploys.  However, this will change in the near term as we have had this requested many times and is something we need ourselves.  However, if you are referring to just swapping a connection string, this is very easy and this support already exists.

As for the sample, if you will read the last post I made, it will have the link to the sample to get you going. or just click this link: http://forum.strataframe.net/Topic4635-17-1.aspx