My first app update

Hello,
I'm new to development.
My account is Starter.
I have App "A" working which I use to continue the development of implementations and fixes.
I generated a copy of the App called "B" that I shared for the client to work on.
Yesterday I made some modifications in App "A" and I tried to update these modifications in App "B".
The update took place, but along with it came the data from the App "A" database, this cannot happen because the customer database in App "B" already has information.
How can I update without messing with the client's database?
The only changes I made to the database were some display names, could that be why the database data was changed as well?

Solved Solved
0 3 177
1 ACCEPTED SOLUTION

It sounds like you're using the Upgrade an app - AppSheet Help feature. If so, bear in mind that doing so overwrites the target app's entire configuration with the source app's entire configuration, including, for example, each app table's source path, which specifies its connection to its data source. Also, the upgrade function doesn't process at all any files or other data beyond the app configuration itself--e.g., data source structure, data source content, templates, Apps Script projects, app logos and background images. Essentially, your upgraded app may be pointing to the non-production data source and the remedy is to:

  • Replicate in the production data source's structure any changes expected by the upgraded app.
  • Re-point the production app's tables to the production data source.

I don't recall seeing a thorough guide to accounting for all of an app's typical external references, but there are various posts in the community addressing the issue. Here's one example.

View solution in original post

3 REPLIES 3

It sounds like you're using the Upgrade an app - AppSheet Help feature. If so, bear in mind that doing so overwrites the target app's entire configuration with the source app's entire configuration, including, for example, each app table's source path, which specifies its connection to its data source. Also, the upgrade function doesn't process at all any files or other data beyond the app configuration itself--e.g., data source structure, data source content, templates, Apps Script projects, app logos and background images. Essentially, your upgraded app may be pointing to the non-production data source and the remedy is to:

  • Replicate in the production data source's structure any changes expected by the upgraded app.
  • Re-point the production app's tables to the production data source.

I don't recall seeing a thorough guide to accounting for all of an app's typical external references, but there are various posts in the community addressing the issue. Here's one example.

Hello,
In short, if I understand correctly, today the App update tool also brings the database of the copied bank.
To use this tool, we have to follow these steps:
1) Ask the customer not to touch the system or deactivate the App;
2) Make a copy of the App with the customer's bank;
3) Make changes to this App (copy);
4) Update the client's App back;
5) Releases the client to use.
Thank you for the attention you always dedicate to us.
Thanks.

There's no copying of any bank or data. What's copied that's pertinent to your question is an app's connections to its data sources. For example:

  • You develop App A connected to Database X
  • You copy App A, name the copy App B, and connect App B to Database Y
  • You modify App B, and make corresponding changes to the column structure of tables in Database Y
  • You use the AppSheet upgrade app feature to upgrade App A using App B
  • Now App A is identical to App B, including both being connected to Database Y

As you may be referencing in your steps, after doing the above you need to then:

  • Manually modify Database X to match the updated column structure of Database Y
  • Manually redirect App A's tables to Database X

Indeed, any time that you're modifying the structure of a production app's data sources it's prudent to pause the app so that it's temporarily unavailable to users.

Top Labels in this Space