İşte benim başıma gelen olay bu idi.

Ghost blog'a bütün verilerimi migration yaparak taşıdım. Migration bir süreç olduğu için halen de devam ediyorum. Bazı linklerdeki dosyalar projeleri teker teker aktarmak zorunda da kalabiliyorum.

SQLLite database için benzer şekilde içeriğiniz hacklenmiş ve belirli bir desen var ise (Bende div position diye başlayıp garip linkler içeren bir div bloğu vardı) siz de kendi fonksiyonunuzu yazarak içerik temizleyebilirsiniz.

Bunun için

import sqlite3
def removeAfter(string, suffix):

    return string[:string.index(suffix) +len(suffix)-10]#10 clear de 
div style.. value
sqlite_file = 'ghost.db'    
# name of the sqlite database file
table_name = 'posts'   
# name of the table to be queried

column = 'html'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
c.execute('SELECT * FROM {tn} WHERE {cn} like "%div style=%"'.\
        format(tn=table_name, cn=column))
for row in c:
    print removeAfter(row[6].encode('utf-8'),'div style')
    print removeAfter(row[4].encode('utf-8'),'div style')
    rowid = row[0]
    print rowid
    newhtml = removeAfter(row[6].encode('utf-8'),'div style')
    newmarkdown = removeAfter(row[4].encode('utf-8'),'div style')
    cx = conn.cursor()
    cx.execute("UPDATE posts SET html=?,markdown=? WHERE id=?", (newhtml.decode('utf-8'), newmarkdown.decode('utf-8'),rowid))
    print cx.rowcount
conn.commit() 
##important if you do not commit. Update operations does not work.
conn.close()

Fonksiyonunu yazdım. Sırayla saçma içerikleri bulup sonra olması gereken haliyle güncelliyor.

Kolaylıklar,