Project

General

Profile

Database migrating exportimport scripts » History » Version 16

Sargis Dallakyan, 01/16/2021 01:39 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 16 Sargis Dallakyan
stop mysqld and copy all database files over (located, by default, in /var/lib/mysql). 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 11 Anchi Cheng
As years goes by, the databases get 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 11 Anchi Cheng
19 12 Anchi Cheng
|what|export|import|
20
|tem,mag table, camera|export_leginon_instruments.py|import_leginon_instruments.py|
21
|calibrations|export_leginon_cal.py|import_leginon_cal.py|
22
|leginon settings|export_leginon_settings.py|import_leginon_settings.py|
23
|presets|export_leginon_presets.py|import_leginon_presets.py|
24
|gain/dark reference images|export_leginon_ref.py|import_leginonref.py|
25
26 11 Anchi Cheng
The old databases can be kept as archive that you can still view with its own myamiweb but no longer write to.
27 1 Anchi Cheng
28 13 Anchi Cheng
These are in myami/dbschema/tools.  They are not installed by the auto-installer, so you do need a git clone myami to access it.
29
You also need to know your sinedon.cfg of the system you migrate from and to.
30 1 Anchi Cheng
31 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.
32
33
Here are the ones you might want:
34 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).
35 5 Anchi Cheng
2. leginondb tables GroupData and UserData
36
37
If you want all old applications, you can also dump/import ApplicationData.  Otherwise, individual application import/export is easiest using myamiweb administration tab.
38
39 14 Anchi Cheng
h2. Step 2: On the old system, run these in a clean directory
40 1 Anchi Cheng
41 14 Anchi Cheng
For example, a subdirectory from myami/dbschema/tools
42
43 9 Anchi Cheng
source_database_hostname is what is in your sinedon.cfg
44 1 Anchi Cheng
All output files except reference images are json files.  The name format is used for parsing in the import.
45
46
h3. export_leginon_instruments.py
47
48
*Usage* export_leginon_instruments.py source_database_hostname <hostname1,hostname2>
49
(optional hostname1, hostname2 etc are specific instrument hostname to export. default will export all)
50 14 Anchi Cheng
*Example* python ../export_leginon_instruments.py localhost Titan123456,GatanK3host
51 1 Anchi Cheng
52
h3. export_leginon_cal.py
53
54
*Usage* export_leginon_cal.py source_database_hostname source_camera_hosthame camera_name <source_tem_name>
55 14 Anchi Cheng
*Example* python ../export_leginon_cal.py localhost GatanK3host k3host EFKrios
56 1 Anchi Cheng
57
h3. export_leginon_settings.py
58
59
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.
60
61
*Usage* python export_leginon_settings.py <sessionname> <optional partial application name> <optional node name prefix>
62 14 Anchi Cheng
*Example* python ../export_leginon_settings.py 20dec31a
63 1 Anchi Cheng
64
h3. export_leginon_presets.py
65
66 15 Anchi Cheng
This export presets used of a specific session, typically the same session as above to be used as default in your new system.  It general files separated by tem/camera combo.
67 1 Anchi Cheng
68
*Usage* python export_leginon_presets.py <sessionname> <optional partial application name> <optional node name prefix>
69 14 Anchi Cheng
*Example* python ../export_leginon_presets 20dec31a
70 1 Anchi Cheng
71
72
h3. export_leginon_ref.py
73
74
*Usage* python export_leginon_ref.py source_database_hostname source_camera_hosthame camera_name
75 14 Anchi Cheng
*Example* python ../export_leginon_ref.py localhost k3host GatanK3
76 1 Anchi Cheng
77
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.
78
79 6 Anchi Cheng
h2. Step 3: copy the resulting json and mrc files to the new leginon host (called new_host in the examples)
80 1 Anchi Cheng
81 15 Anchi Cheng
h2. Step 4: On the clean installation that has already administrator user and other default in the installation, run these imports on the json files.
82 1 Anchi Cheng
83
h3. import_leginon_instruments.py
84
85
*Usage* import_leginon_instruments.py database_hostname
86 15 Anchi Cheng
*Example* python ../import_leginon_instruments.py new_host
87 1 Anchi Cheng
88
h3. import_leginon_cal.py
89
90
*Usage* import_leginon_cal.py database_hostname camera_cal_json_file
91 15 Anchi Cheng
*Example* python ../import_leginon_cal.py new_host cal_titan123456+EFKrios+gatank3host+GatanK3.json
92 1 Anchi Cheng
93
h3. import_leginon_settings.py
94
95
*Usage* python import_leginon_settings.py <applicationname or json filepath>
96 15 Anchi Cheng
*Example* python ../import_leginon_settings.py 20dec31a.json
97 1 Anchi Cheng
98
h3. import_leginon_presets.py
99
100
*Usage* python import_leginon_presets.py database_hostname tem_camera_presets_json_file
101 15 Anchi Cheng
*Example* ../python import_leginon_presets.py new_host preset_titan123456+EFKrios+gatank3host+GatanK3.json
102 1 Anchi Cheng
103
h3. import_leginon_ref.py 
104
105
*Usage* import_leginon_ref.py database_hostname camera_ref_json_file
106 15 Anchi Cheng
*Example* python ../import_leginon_ref.py new_host ref_titan123456+EFKrios+gatank3host+GatanK3.json