Created
January 23, 2017 11:48
-
-
Save ihfazhillah/fe8e990f0901067d3b7db9ea4ab66680 to your computer and use it in GitHub Desktop.
menambahkan slug kolom dan mengisinya
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
asumsi database memiliki 3 table: book, author, genre | |
setiap table tidak memiliki kolom slug dan akan ditambahkan kolom ini | |
dan diisi slug berdasarkan: | |
- book => title | |
- genre => name | |
- author => name | |
menggunakan slugify.slugify module (pip install python-slugify) | |
contoh penggunaaan: | |
$ python3 add_slug_script.py "coba.sqlite" | |
elapsed time: 0:00:00.394376 | |
""" | |
import sqlite3 | |
from slugify import slugify | |
import datetime | |
def main(DB_PATH): | |
con = sqlite3.connect(DB_PATH) | |
cur = con.cursor() | |
con.create_function('slugify', 1, slugify) | |
cur.execute('alter table book add column slug varchar') | |
cur.execute('alter table author add column slug varchar') | |
cur.execute('alter table genre add column slug varchar') | |
cur.execute('update book set slug=slugify(title)') | |
cur.execute('update genre set slug=slugify(name)') | |
cur.execute('update author set slug=slugify(name)') | |
con.commit() | |
con.close() | |
if __name__ == '__main__': | |
import sys | |
# cara gunakan, panggil script ini dan ikuti dengan database path didalam "" | |
args = sys.argv | |
start = datetime.datetime.now() | |
main(args[1]) | |
end = datetime.datetime.now() | |
print("elapsed time: %s" % str(end - start)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment