Database migrating exportimport scripts » History » Version 15
Anchi Cheng, 01/15/2021 06:13 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 | 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 |