-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
226 lines (138 loc) · 5.39 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
# Install the application
#########################
# Create a virtualenv
$ virtualenv --no-site-packages ve
# Activate virtual envrionnement
$ source ve/bin/activate
You're now in virtual environment: all programs will be installed in ~/ve !
# Install dependencies
$ python setup.py install
# Error on windows for djeneralize
See http://stackoverflow.com/questions/9136375/django-file-picker-setup-py-broken
Remove trailing slash in ve/build/djeneralize/MANIFEST.in
# Check the settings
$ vim mediamis/settings/local_settings.py
# Create tables
./manage.py schemamigration friendlib --initial
./manage.py syncdb
./manage.py migrate
# Run development server
########################
$ ./manage.py runserver_plus
# Use on Heroku ...
####################
Cf. http://devcenter.heroku.com/articles/django
!!! Make sure mediamis/settings.py exist and IS a file, because heroku add some stuff
$ git init
$ git add .
$ git commit -m "Initial commit"
$ heroku create --stack cedar
$ git push heroku master
#### Create and sync tables
$ heroku run python mediamis/manage.py schemamigration friendlib --initial #### No need, should be commited ....
$ heroku run python mediamis/manage.py syncdb
$ heroku run python mediamis/manage.py migrate
# Check process
$ heroku ps
# Si pas de web worker
$ heroku scale web=1
$ heroku open
# Init new Postgres base
#########################
sql> create user mediamis password 'mediamis'
sql> create database mediamis with owner = mediamis
(restore a backup file :
C:/Program Files (x86)/PostgreSQL/9.2/bin\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "mediamis" --role "mediamis" --no-password --data-only --verbose "C:\Users\steph\Docs perso\Code\dev\perso\mediamis\data\b003.dump")
# Making backup of existing data
# and export locally database
# See https://devcenter.heroku.com/articles/pgbackups
##################################
*** With backup solution (must run a Postgres locally)
# Make backup
$ heroku pgbackups:capture
# Download it
$ heroku pgbackups:url
# Import it locally (or load it with pgAdmin Tools/Retore)
$ pg_restore --verbose --clean --no-acl --no-owner -h myhost -U myuser -d mydb my_backup.dump
*** With direct export (slow)
$ heroku pg:pull sqlite://plop.db
$ heroku pg:pull "jdbc:postgresql://localhost/mediamis"
*** With dumpscript
$ heroku run python mediamis/manage.py dumpscript auth.User
$ heroku run python mediamis/manage.py dumpscript friendlib
# Try modif locally
####################
* Checkout remote heroku/master to local heroku_master
* Run it locally to simulate production environnement
* Merge local trunk or master with current local checkout of heroku/master heroku
* Apply possible migrations (South)
* Run collectstatic (for ... static files)
* Run app and check everything's alrights
* Then, merge heroku_master to master
* Then, push local master to heroku/master
# Update code on Heroku
######################
*** Backup the data (cf. up)
*** Make sure you don't fuck up the migrations
-> Migrations need to be commited !
Go to LOCAL project directory
$ heroku run python mediamis/manage.py shemamigration friendlib --auto
[COMMIT]
*** Push the new updates to Heroku
$ git push heroku master
# Update the tables
#####################
*** Make sure you don't fuck up the migrations
-> Migrations need to be commited !
*** Update the tables
$ heroku run python mediamis/manage.py syncdb
$ heroku run python mediamis/manage.py migrate friendlib
# Reseting the tables (if something wrong...)
##################################
*** Clear the tables
$ heroku run python mediamis/manage.py sqlclear friendlib south #######RESET NOT GOOD: CREATE THE TABLES AS WELL !!!
DROP TABLE "friendlib_mediarequest";
DROP TABLE "friendlib_boardgame";
DROP TABLE "friendlib_divx";
DROP TABLE "friendlib_dvd";
DROP TABLE "friendlib_movie";
DROP TABLE "friendlib_book";
DROP TABLE "friendlib_media";
DROP TABLE "south_migrationhistory";
$ heroku pg:psql
*** Make sure you have only initial migration file commited and pushed
$ heroku run python mediamis/manage.py shemamigration friendlib --auto
*** Create new ones
$ heroku run python mediamis/manage.py syncdb
$ heroku run python mediamis/manage.py migrate friendlib
*** Put initial data
o Users
$ heroku run python mediamis/manage.py runscript data_users
o Some Medias
$ heroku run python mediamis/manage.py runscript data_medias
# Various tips
###############
# Generate graph of models
./manage.py graph_models -g friendlib auth -o ../specs/models.png
# Update databases tables
./manage.py schemamigration friendlib --auto
./manage.py migrate friendlib
# Export data
./manage.py dumpscript > scripts/mescouilles.py
# Load script data
./manage.py reset auth friendlib
./manage.py runscript
# Create initial south migration (once for all)
$ for app in cipsdb ajax_validation crumbs; do ./manage schemamigration $app --initial ; done
# Create tables for on all databases
$ ./manage multi_syncdb
$ ./manage mutil_migrate
# Note on South
###############
Upgrade a model
$ ./manage.py schemamigration cipsdb --auto
$ ./manage.py migrate cipsdb
Les milles et unes nuits (by alice)
Alicette à phuket (by alice)
Bernard l'herbite (by steph)
Alice au pays des merveilles (by steph)