mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
add a script for copying schema information from python to typescript
There was no script for updating typescript schema information after a python-based document migration. Moving one in here, along with its test. Tweaked the code slightly to work with grist-core's directory structure. Also fixed a formatting error in mocha calls that was resulting in some root tests not running.
This commit is contained in:
48
buildtools/update_schema.sh
Executable file
48
buildtools/update_schema.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Regenerates typescript files with schema and sql for grist documents.
|
||||
# This needs to run whenever the document schema is changed in the data
|
||||
# engine, maintained in python code. It propagates the schema information
|
||||
# to a typescript file, and updates SQL code for initializing new documents.
|
||||
#
|
||||
# To preview what it will do, call as:
|
||||
# buildtools/update_schema.sh schema.ts sql.ts
|
||||
# This will put schema.ts and sql.ts files in your working directory.
|
||||
# Run without any arguments to modify application files.
|
||||
# buildtools/update_schema.sh
|
||||
# (you can see the differences with git diff if in a git repository).
|
||||
|
||||
set -e
|
||||
|
||||
schema_ts=$1
|
||||
sql_ts=$2
|
||||
if [[ -z "$schema_ts" ]]; then
|
||||
# Default to regenerating regular suspects.
|
||||
schema_ts=app/common/schema.ts
|
||||
sql_ts=app/server/lib/initialDocSql.ts
|
||||
fi
|
||||
if [[ -z "$sql_ts" ]]; then
|
||||
echo "Need both a schema and sql target"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prepare new version of schema file.
|
||||
# Define custom python path locally, do not let it bleed over to node, since it
|
||||
# could interfere with sandbox operation.
|
||||
if [[ -e sandbox_venv3/bin/python ]]; then
|
||||
# Use our virtual env if available.
|
||||
PYTHON=sandbox_venv3/bin/python
|
||||
else
|
||||
# Fall back on system.
|
||||
PYTHON=python
|
||||
fi
|
||||
PYTHONPATH=sandbox/grist:sandbox/thirdparty $PYTHON -B sandbox/gen_js_schema.py > $schema_ts.tmp
|
||||
|
||||
# Prepare new version of sql file.
|
||||
export NODE_PATH=_build:_build/core:_build/ext
|
||||
BUILD=$(test -e _build/core && echo "_build/core" || echo "_build")
|
||||
node $BUILD/app/server/generateInitialDocSql.js $sql_ts.tmpdoc > $sql_ts.tmp
|
||||
|
||||
rm $sql_ts.tmpdoc.grist
|
||||
mv $schema_ts.tmp $schema_ts
|
||||
mv $sql_ts.tmp $sql_ts
|
||||
Reference in New Issue
Block a user