Project

General

Profile

Database migrating exportimport scripts » History » Version 10

Anchi Cheng, 01/15/2021 05:57 PM

1 1 Anchi Cheng
h1. Database migrating export/import scripts
2
3
When you need to move all your data in the database to a new computer, you can
4
5
Either
6
7 2 Anchi Cheng
copy the all the database files over. See where in [[standard mysql database file locations]] (This only works well if your new computer is identical in setup.
8 1 Anchi Cheng
9
Or
10
11
# do a full [[Mysqldump_of_your_database|mysqldump]] which includes instruction on how to recreate it through mysql command and then
12 7 Anchi Cheng
# [[Load_mysqldumped_databases|restore it]] on the new host
13 1 Anchi Cheng
14
h2. Start fresh but keep the instruments/calibrations/settings even most recent gain/dark references and other tables that you really care.
15
16 8 Anchi Cheng
As years goes by, the database gets too big to backup or congested with old instrument and images you no longer own or care.  A few scripts were written to
17 1 Anchi Cheng
make it possible to take a clean installation and migrate from the old system the stuff you need to care over.
18
19
These are in myami/dbschema/tools.  These are not installed, so you do need a git clone myami to access it.
20
You need to know your sinedon.cfg of the system you migrate from and to.
21
22 5 Anchi Cheng
h2. Step 1: Use mysqldump to migrate single tables (see above and mysql documentation on the internet) and restore them on the new host.
23
24
Here are the ones you might want:
25 10 Anchi Cheng
1. all projectdb except the two tables projectexperiments and processingdb (You can dump/restore the whole database and then empty the data in these two tables).
26 5 Anchi Cheng
2. leginondb tables GroupData and UserData
27
28
If you want all old applications, you can also dump/import ApplicationData.  Otherwise, individual application import/export is easiest using myamiweb administration tab.
29
30 9 Anchi Cheng
h2. Step 2: On the old system, run these:
31 1 Anchi Cheng
32 9 Anchi Cheng
source_database_hostname is what is in your sinedon.cfg
33 1 Anchi Cheng
All output files except reference images are json files.  The name format is used for parsing in the import.
34
35
h3. export_leginon_instruments.py
36
37
*Usage* export_leginon_instruments.py source_database_hostname <hostname1,hostname2>
38
(optional hostname1, hostname2 etc are specific instrument hostname to export. default will export all)
39
*Example* python export_leginon_instruments.py localhost Titan123456,GatanK3host
40
41
h3. export_leginon_cal.py
42
43
*Usage* export_leginon_cal.py source_database_hostname source_camera_hosthame camera_name <source_tem_name>
44
*Example* python export_leginon_cal.py localhost GatanK3host k3host EFKrios
45
46
h3. export_leginon_settings.py
47
48
This export settings used by a specific session, typically a session you know containing good settings to be used as default in your new system.
49
50
*Usage* python export_leginon_settings.py <sessionname> <optional partial application name> <optional node name prefix>
51
*Example* python 20dec31a
52
53
h3. export_leginon_presets.py
54
55
This export presets used by a specific session, typically the same session as above to be used as default in your new system.
56
57
*Usage* python export_leginon_presets.py <sessionname> <optional partial application name> <optional node name prefix>
58
*Example* python 20dec31a
59
60
61
h3. export_leginon_ref.py
62
63
*Usage* python export_leginon_ref.py source_database_hostname source_camera_hosthame camera_name
64
*Example* python export_leginon_ref.py localhost k3host GatanK3
65
66
This script and its import counter part are also used as a regular backup to quickly recover from file server issue that require us to use a different file disk and avoid accessing the problem disk.
67
68 6 Anchi Cheng
h2. Step 3: copy the resulting json and mrc files to the new leginon host (called new_host in the examples)
69 1 Anchi Cheng
70 6 Anchi Cheng
h2. Step 4: On the clean installation that has already administrator user and other default in the installation, run these imports
71 1 Anchi Cheng
72
h3. import_leginon_instruments.py
73
74
*Usage* import_leginon_instruments.py database_hostname
75
*Example* python import_leginon_instruments.py new_host
76
77
h3. import_leginon_cal.py
78
79
*Usage* import_leginon_cal.py database_hostname camera_cal_json_file
80
*Example* python import_leginon_cal.py new_host cal_titan123456+EFKrios+gatank3host+GatanK3.json
81
82
h3. import_leginon_settings.py
83
84
*Usage* python import_leginon_settings.py <applicationname or json filepath>
85
*Example* python import_leginon_settings.py 20dec31a.json
86
87
h3. import_leginon_presets.py
88
89
*Usage* python import_leginon_presets.py database_hostname tem_camera_presets_json_file
90
*Example* python import_leginon_presets.py new_host preset_titan123456+EFKrios+gatank3host+GatanK3.json
91
92
h3. import_leginon_ref.py 
93
94
*Usage* import_leginon_ref.py database_hostname camera_ref_json_file
95
*Example* python import_leginon_ref.py new_host ref_titan123456+EFKrios+gatank3host+GatanK3.json