mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-19 10:59:21 +02:00
comments and code adjustments
This commit is contained in:
parent
42a2e8d3ae
commit
4ff60817da
4 changed files with 60 additions and 12 deletions
|
@ -11,7 +11,12 @@ Simple scripts are provided as detailed below.
|
|||
To export from the source environment, run the following command from src directory:
|
||||
manage.py export_tables
|
||||
|
||||
On a sandbox, connect to the sandbox (getgov-stable in ex below) and run the command:
|
||||
Connect to the source sandbox and run the command:
|
||||
cf ssh {source-app}
|
||||
/tmp/lifecycle/shell
|
||||
./manage.py export_tables
|
||||
|
||||
example exporting from getgov-stable:
|
||||
cf ssh getgov-stable
|
||||
/tmp/lifecycle/shell
|
||||
./manage.py export_tables
|
||||
|
@ -37,10 +42,13 @@ file from the target environment to local. Run the below commands from local.
|
|||
Get passcode by running:
|
||||
cf ssh-code
|
||||
|
||||
scp file from app (app is getgov-stable in example below) to local tmp:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app getgov-stable --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 ssh.fr.cloud.gov:app/tmp/exported_tables.zip .
|
||||
scp file from source app to local file:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app {source-app} --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 ssh.fr.cloud.gov:app/tmp/exported_tables.zip {local_file_path}
|
||||
when prompted, supply the passcode retrieved in the 'cf ssh-code' command
|
||||
|
||||
example copying from stable to local cwd:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app getgov-stable --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 ssh.fr.cloud.gov:app/tmp/exported_tables.zip .
|
||||
|
||||
|
||||
### Import
|
||||
|
||||
|
@ -53,7 +61,14 @@ that there are no database conflicts on import.
|
|||
|
||||
In order to delete all rows from the appropriate tables, run the following
|
||||
command:
|
||||
manage.py clean_tables
|
||||
cf ssh {target-app}
|
||||
/tmp/lifecycle/shell
|
||||
./manage.py clean_tables
|
||||
|
||||
example cleaning getgov-backup:
|
||||
cf ssh getgov-backup
|
||||
/tmp/lifecycle/backup
|
||||
./manage.py clean_tables
|
||||
|
||||
For reference, this deletes all rows from the following tables:
|
||||
|
||||
|
@ -76,12 +91,23 @@ To scp the exported_tables.zip file from local to the sandbox, run the following
|
|||
Get passcode by running:
|
||||
cf ssh-code
|
||||
|
||||
scp file from app (app is getgov-stable in example below) to local cwd:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app getgov-stable --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 tmp/exported_tables.zip ssh.fr.cloud.gov:app/tmp/exported_tables.zip
|
||||
scp file from local to target app:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app {target-app} --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 {local_file_path} ssh.fr.cloud.gov:app/tmp/exported_tables.zip
|
||||
when prompted, supply the passcode retrieved in the 'cf ssh-code' command
|
||||
|
||||
example copy of local file in tmp to getgov-backup:
|
||||
scp -P 2222 -o User=cf:$(cf curl /v3/apps/$(cf app getgov-backup --guid)/processes | jq -r '.resources[] | select(.type=="web") | .guid')/0 tmp/exported_tables.zip ssh.fr.cloud.gov:app/tmp/exported_tables.zip
|
||||
|
||||
|
||||
Then connect to a shell in the target environment, and run the following import command:
|
||||
manage.py import_tables
|
||||
cf ssh {target-app}
|
||||
/tmp/lifecycle/shell
|
||||
./manage.py import_tables
|
||||
|
||||
example cleaning getgov-backup:
|
||||
cf ssh getgov-backup
|
||||
/tmp/lifecycle/backup
|
||||
./manage.py import_tables
|
||||
|
||||
For reference, this imports tables in the following order:
|
||||
|
||||
|
|
|
@ -2272,8 +2272,7 @@ class PublicContactResource(resources.ModelResource):
|
|||
self.create_instances.append(instance)
|
||||
else:
|
||||
self.update_instances.append(instance)
|
||||
else:
|
||||
if not using_transactions and dry_run:
|
||||
elif not using_transactions and dry_run:
|
||||
# we don't have transactions and we want to do a dry_run
|
||||
pass
|
||||
else:
|
||||
|
|
|
@ -4,6 +4,8 @@ from django.core.management import BaseCommand
|
|||
from django.apps import apps
|
||||
from django.db import transaction
|
||||
|
||||
from registrar.management.commands.utility.terminal_helper import TerminalHelper
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -17,6 +19,24 @@ class Command(BaseCommand):
|
|||
logger.error("clean_tables cannot be run in production")
|
||||
return
|
||||
|
||||
TerminalHelper.prompt_for_execution(
|
||||
system_exit_on_terminate=True,
|
||||
info_to_inspect=f"""
|
||||
This script will delete all rows from the following tables:
|
||||
* Contact
|
||||
* Domain
|
||||
* DomainInformation
|
||||
* DomainRequest
|
||||
* DraftDomain
|
||||
* Host
|
||||
* HostIp
|
||||
* PublicContact
|
||||
* User
|
||||
* Website
|
||||
""",
|
||||
prompt_title="Do you wish to proceed with these changes?",
|
||||
)
|
||||
|
||||
table_names = [
|
||||
"DomainInformation",
|
||||
"DomainRequest",
|
||||
|
|
|
@ -63,6 +63,9 @@ class Command(BaseCommand):
|
|||
return
|
||||
|
||||
# if table_name is Contact, clean the table first
|
||||
# User table is loaded before Contact, and signals create
|
||||
# rows in Contact table which break the import, so need
|
||||
# to be cleaned again before running import on Contact table
|
||||
if table_name == "Contact":
|
||||
self.clean_table(table_name)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue