You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 1, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+9-2Lines changed: 9 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,8 +32,8 @@ We present a very basic first-generation Python 2.7 App Engine app and walk deve
32
32
The sample app does not address complexities in your apps but serves as a guide to give you an idea of what is required for each of the migrations. The baseline sample is a Python 2.7 (Gen1) app built on the `webapp2` micro web framework and uses the `ndb` App Engine Datastore library.
33
33
34
34
> **NOTE:**
35
-
> - If your app does not have a user interface, i.e., mobile backends, etc., you still need to migrate to the Flask (or another) web framework to handle mobile app requests. An alternative is to use Cloud Endpoints or migrate your app to the [Firebase mobile & web app platform](https://firebase.google.com) where you can port your App Engine "API handlers" to [Cloud Functions for Firebase](https://firebase.google.com/products/functions).
36
-
> - Users interested in bringing back their dead apps that originally ran on the original Python 2.5 runtime ([deprecated in 2013](http://googleappengine.blogspot.com/2013/03/python-25-thanks-for-good-times.html) and [shutdown in 2017](https://cloud.google.com/appengine/docs/standard/python/python25) must [migrate from `db` to `ndb`](http://cloud.google.com/appengine/docs/standard/python/ndb/db_to_ndb) before attempting the techniques shown in this tutorial.
35
+
- If your app does not have a user interface, i.e., mobile backends, etc., you still need to migrate to the Flask (or another) web framework to handle mobile app requests. An alternative is to use Cloud Endpoints or migrate your app to the [Firebase mobile & web app platform](https://firebase.google.com) where you can port your App Engine "API handlers" to [Cloud Functions for Firebase](https://firebase.google.com/products/functions).
36
+
- Users interested in bringing back their dead apps that originally ran on the original Python 2.5 runtime ([deprecated in 2013](http://googleappengine.blogspot.com/2013/03/python-25-thanks-for-good-times.html) and [shutdown in 2017](https://cloud.google.com/appengine/docs/standard/python/python25) must [migrate from `db` to `ndb`](http://cloud.google.com/appengine/docs/standard/python/ndb/db_to_ndb) before attempting the techniques shown in this tutorial.
37
37
38
38
As mentioned above, some steps are more critical while others are *optional*. We recommend incremental updates. We designed each step to be relatively easy, so you experience each migration individually. However, there are some of you for whom the migration process may be easier where you may be able to take larger migration leaps.
[`step3-flask-datastore-py2`](/step3-flask-datastore-py2) | ↓ or → or ⤓+º | [`step3-flask-datastore-py3`]('step3-flask-datastore-py3) | Migrate to Cloud Datastore
82
82
[ª`step4-cloudndb-cloudrun-py2`](/step4-cloudndb-cloudrun-py2) | → | [`step4-cloudds-cloudrun-py3`](/step4-cloudds-cloudrun-py3) | Migrate to Cloud Run (with Docker)
83
83
84
+
- We recommend users perform the minimal migration of Steps 1 & 2.
85
+
- To modernize a Python 2 App Engine app by containerizing, jump over Step 3 and go straight to Step 4 then stay there forever if desired.
86
+
- Step 3's migration to Cloud Datastore is most useful if you have other apps using Cloud Datastore; you can make your codebase consistent by migrating from Cloud NDB to Cloud Datastore so all your Datastore access is consistent, possibly lowering your maintenance costs.
87
+
- Migrating to Step 4 is only useful if you wish to containerize your app and run it serverlessly with Cloud Run. The Python 2 app uses Cloud NDB while the Python 3 equivalent uses Cloud Datastore.
88
+
84
89
### Alternatives
85
90
91
+
There are several alternatives to consider to the main steps above: 1) migrating to Cloud Firestore for those who desire to take advantage of the next-generation of Cloud Datastore that has features from the Firebase real-time database, and 2) an alternative to building containers using [Cloud Buildpacks](https://github.com/GoogleCloudPlatform/buildpacks) instead of Docker.
92
+
86
93
- Cloud Datastore & Cloud Firestore are mutually-exclusive, thus requiring a new project
87
94
- Thus it is much less likely users perform this migration; see Step 3a if it's a **must-have**
88
95
- Step 4a is for developers who want to containerize their apps but **without** Docker
Copy file name to clipboardExpand all lines: step4-cloudds-cloudrun-py3/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,4 +80,4 @@ Doublecheck there are no files/folders named, `app.yaml`, `appengine_config.py`,
80
80
Congratulations... your app is fully modernized now, concluding this tutorial. From here, there is only one more thing you can investigate:
81
81
82
82
-[**Step 4a:**](/step4a-cloudrun-bldpks-py3) An alternative to app in *this* tutorial, containerizing your app with [Cloud Buildpacks](https://github.com/GoogleCloudPlatform/buildpacks) instead of Docker.
83
-
-[**Step 3a:**](/step3a-flask-firestore-py3) For those who are considering migrating from Cloud Datastore to Firestore (NOTE: that app is not containerized & runs on App Engine)
83
+
-[**Step 3a:**](/step3a-flask-firestore-py3) For those who are considering migrating from Cloud Datastore to Firestore (NOTE: that app is not containerized & runs on App Engine)
0 commit comments