Regarding the instructions to deploy in GAE with symlinks it works perfect.
# symlink the apps that you want to deploy to GAE, for example:
ln -s ../../apps/_default apps/_default
So in a pip installed py4web I have this struture that works to deploy in GAE.
- I have created a directory according to py4web/deployment_tools/gae README.md, and called it "deploygae".
- Created an application in py4web _dashboard, called testgae
- ln -s ../../apps/_testgae apps/_default
It works perfect and I can deploy py4web testgae in GAE. This is the dir tree:
.
├── apps
│ ├── _dashboard
│ │ ├── diff2kryten.py
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── static
│ │ ├── templates
│ │ ├── translations
│ │ └── utils.py
│ ├── _default
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── templates
│ ├── _documentation
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── static
│ ├── __init__.py
│ ├── _minimal
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── static
│ ├── __pycache__
│ │ └── __init__.cpython-37.pyc
│ ├── _scaffold
│ │ ├── common.py
│ │ ├── controllers.py
│ │ ├── databases
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── __pycache__
│ │ ├── README.md
│ │ ├── settings.py
│ │ ├── static
│ │ ├── tasks.py
│ │ ├── templates
│ │ └── translations
│ └── testgae
│ ├── common.py
│ ├── controllers.py
│ ├── databases
│ ├── __init__.py
│ ├── models.py
│ ├── __pycache__
│ ├── README.md
│ ├── settings.py
│ ├── static
│ ├── tasks.py
│ ├── templates
│ └── translations
├── deploygae
│ ├── apps
│ │ ├── _default -> ../../apps/testgae
│ │ ├── __init__.py
│ │ └── __pycache__
│ ├── app.yaml
│ ├── dispatch.yaml
│ ├── index.yaml
│ ├── lib
│ │ ├── bin
│ │ ├── py4web
│ │ └── py4web-1.20200415.2.dist-info
│ ├── main.py
│ ├── Makefile
│ ├── __pycache__
│ │ └── main.cpython-37.pyc
│ ├── README.md
│ └── requirements.txt
└── password.txt
But, I just wanted to do a git repository with deploygae folder. The reason is that I can make more differentes folders to deploy in GAE more different apps.
The problem is that symlinks does not work in GIT with folders outside the project tree. The _default symlink is stored as a blob.
The solution I found is:
- I have created a directory according to py4web/deployment_tools/gae README.md, and called it "deploygae".
- Created an application in py4web _dashboard, called testgae
- Move testgae folder from apps to deploygae/apps
- Rename testgae folder as _default
- Create a symplink in apps folder whith the name you want to give to your app in _dashboard form deploygae/apps/_default: ln -s ../deploygae/apps/_default apps/testgae
Py4web _dashboard works wiht symlinks as they are in the same machine wiht no problem, and we can make GIT control to deploygae folder with all the files included.
.
├── apps
│ ├── _dashboard
│ │ ├── diff2kryten.py
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── static
│ │ ├── templates
│ │ ├── translations
│ │ └── utils.py
│ ├── _default
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── templates
│ ├── _documentation
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── static
│ ├── __init__.py
│ ├── _minimal
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── static
│ ├── present
│ │ ├── common.py
│ │ ├── controllers.py
│ │ ├── databases
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── __pycache__
│ │ ├── README.md
│ │ ├── settings_private.py
│ │ ├── settings.py
│ │ ├── static
│ │ ├── tasks.py
│ │ ├── templates
│ │ └── translations
│ ├── testgae -> ../deploygae/apps/_default
│ ├── __pycache__
│ │ └── __init__.cpython-37.pyc
│ └── _scaffold
│ ├── common.py
│ ├── controllers.py
│ ├── databases
│ ├── __init__.py
│ ├── models.py
│ ├── __pycache__
│ ├── README.md
│ ├── settings.py
│ ├── static
│ ├── tasks.py
│ ├── templates
│ └── translations
├── deploygae
│ ├── apps
│ │ _default
│ │ │ ├── common.py
│ │ │ ├── controllers.py
│ │ │ ├── databases
│ │ │ ├── __init__.py
│ │ │ ├── models.py
│ │ │ ├── __pycache__
│ │ │ ├── README.md
│ │ │ ├── settings_private.py
│ │ │ ├── settings.py
│ │ │ ├── static
│ │ │ ├── tasks.py
│ │ │ ├── templates
│ │ │ └── translations
│ │ ├── __init__.py
│ │ └── __pycache__
│ ├── app.yaml
│ ├── index.yaml
│ ├── lib
│ │ ├── bin
│ │ ├── py4web
│ │ └── py4web-1.20200426.2-py3.7.egg-info
│ ├── main.py
│ ├── Makefile
│ ├── Makefile~
│ ├── README.md
│ └── requirements.txt
└── password.txt