* Removed unused get note diff function. It doesn't work because everything is encrypted now

* Added a script to sync down the prod database and files to dev
This commit is contained in:
Max G 2020-10-10 21:27:52 +00:00
parent 941d21d9cb
commit c7e342be4d
6 changed files with 62 additions and 85 deletions

43
applyProdDatabaseToDev.sh Executable file
View File

@ -0,0 +1,43 @@
#!/bin/bash
echo '-------'
echo 'Starting Database Restore'
echo '-------'
#get Latest database backup
# Unzip File
# gzip -dk file.gz
BACKUPDIR="/home/mab/databaseBackupSolidScribe"
DEVDBPASS="Crama!Lama*Jamma###88383!!!!!345345956245i"
cd $BACKUPDIR
# -t sort by modification time, newest first
# -A --almost-all, do not list implied . and ..
LASTZIPPEDFILE=$(ls -At *.gz | head -n1)
# -k keep file after unzip
# -d Decompress
# -v verbose
echo "Unzipping $LASTZIPPEDFILE"
gunzip -dkv $LASTZIPPEDFILE
BACKUPFILE=$(ls -At *.sql | head -n1)
#Fix to replace incompatible DB type
echo "Updating table name in $BACKUPFILE"
sed -i $BACKUPFILE -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g'
echo "Removing and syncing static files"
rm -r /home/mab/ss/staticFiles/*
rsync -e 'ssh -p 13328' -hazC --update mab@solidscribe.com:/home/mab/pi/staticFiles /home/mab/ss/
echo "Updating Database"
mysql -u root --password="$DEVDBPASS" < $BACKUPFILE
rm *.sql
echo '-------'
echo "Applied Prod database to Dev. LastFile: $BACKUPFILE"
echo '-------'

View File

@ -1,18 +1,28 @@
#!/bin/bash #!/bin/bash
BACKUPDIR="/home/mab/databaseBackupPi" BACKUPDIR="/home/mab/databaseBackupSolidScribe"
mkdir -p $BACKUPDIR mkdir -p $BACKUPDIR
cd $BACKUPDIR cd $BACKUPDIR
NOW=$(date +"%Y-%m-%d_%H-%M") NOW=$(date +"%Y-%m-%d_%H-%M")
ssh mab@solidscribe.com -p 13328 "mysqldump --all-databases --user root -p***REMOVED***" > "backup-$NOW.sql" ssh mab@solidscribe.com -p 13328 "mysqldump --all-databases --single-transaction --user root -p***REMOVED***" > "backup-$NOW.sql"
gzip "backup-$NOW.sql"
cp "backup-$NOW.sql" "/mnt/Windows Data/DatabaseBackups/backup-$NOW.sql" cp "backup-$NOW.sql" "/mnt/Windows Data/DatabaseBackups/backup-$NOW.sql"
echo "Database Backup Complete on $NOW" echo "Database Backup Complete on $NOW"
##
# Restore DB # Restore DB
##
# copy file over, run restore # copy file over, run restore
# scp -P 13328 backup-2019-12-04_03-00.sql mab@avidhabit.com:/home/mab # scp -P 13328 backup-2019-12-04_03-00.sql mab@avidhabit.com:/home/mab
# mysql -u root -p < backup-2019-12-04_03-00.sql # mysql -u root -p < backup-2019-12-04_03-00.sql
##
# Crontab setup
##
# 0 2 * * * /bin/bash /home/mab/ss/backupDatabase.sh 1> /home/mab/databaseBackupLog.txt

View File

@ -954,20 +954,6 @@
console.log('Focus regained with note open.') console.log('Focus regained with note open.')
console.log('Attempting to fix diff text. fix this. Search spleen') console.log('Attempting to fix diff text. fix this. Search spleen')
return return
axios.post('/api/note/difftext', postData)
.then( ({data}) => {
//Don't do anything if nothing has changed
if(data == ''){ return }
if(data.diffs > 0){
//Update text and last updated time for note
this.setText(data.updatedText)
this.updated = data.updated
}
})
.catch(error => { this.$bus.$emit('notification', 'Failed to get diff') })
} }
//Track visibility state //Track visibility state

View File

@ -658,60 +658,6 @@ Note.delete = (userId, noteId, masterKey = null) => {
}) })
} }
//text is the current text for the note that will be compared to the text in the database
Note.getDiffText = (userId, noteId, usersCurrentText, lastUpdated) => {
return new Promise((resolve, reject) => {
Note.get(userId, noteId)
.then(noteObject => {
if(!noteObject.text || !usersCurrentText || noteObject.encrypted == 1){
return resolve(null)
}
let oldText = noteObject.text.replace(/(\r\n|\n|\r)/gm,"")
let newText = usersCurrentText.replace(/(\r\n|\n|\r)/gm,"")
if(noteObject.updated == lastUpdated){
// console.log('No note diff')
return resolve(null)
}
if(noteObject.updated > lastUpdated){
newText = noteObject.text.replace(/(\r\n|\n|\r)/gm,"")
oldText = usersCurrentText.replace(/(\r\n|\n|\r)/gm,"")
}
const dmp = new DiffMatchPatch.diff_match_patch()
const diff = dmp.diff_main(oldText, newText)
dmp.diff_cleanupSemantic(diff)
const patch_list = dmp.patch_make(oldText, newText, diff);
const patch_text = dmp.patch_toText(patch_list);
//Patch text - shows a list of changes
var patches = dmp.patch_fromText(patch_text);
// console.log(patch_text)
//results[1] - contains diagnostic data for patch apply, its possible it can fail
var results = dmp.patch_apply(patches, oldText);
//Compile return data for front end
const returnData = {
updatedText: results[0],
diffs: results[1].length, //Only use length for now
updated: Math.max(noteObject.updated,lastUpdated) //Return most recently updated date
}
//Final change in notes
// console.log(returnData)
resolve(returnData)
})
})
}
Note.get = (userId, noteId, masterKey) => { Note.get = (userId, noteId, masterKey) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@ -60,14 +60,6 @@ router.post('/search', function (req, res) {
}) })
}) })
router.post('/difftext', function (req, res) {
Note.getDiffText(userId, req.body.noteId, req.body.text, req.body.updated)
.then( fullDiffText => {
//Response should be full diff text
res.send(fullDiffText)
})
})
router.post('/reindex', function (req, res) { router.post('/reindex', function (req, res) {
Note.reindex(userId, masterKey) Note.reindex(userId, masterKey)
.then( data => { .then( data => {

View File

@ -1,10 +1,10 @@
#!/bin/bash #!/bin/bash
echo 'Make sure this is being run from root folder of project' cd /home/mab/ss
echo 'Starting Client webpack dev server (/app), in a screen, watching for file changes...' echo '::--:: Starting dev server. cd client; npm run serve -> 192.168.1.164:8081'
screen -dm bash -c "cd client/; npm run watch" screen -dmS "NoteClientScreen" bash -c "cd /home/mab/ss/client; npm run serve"
echo 'Starting API server (/api), watching for file changes...' echo '::--:: Starting API server (/api), watching for file changes...'
cd server cd /home/mab/ss/server
pm2 start ecosystem.config.js pm2 start ecosystem.config.js