ชาวยูเครนกำลังต่อสู้เพื่อประเทศของตน พลเรือน ผู้หญิง และเด็กจำนวนมากต้องทนทุกข์ทรมาน มีผู้เสียชีวิตและบาดเจ็บหลายร้อยคน และอีกหลายพันคนต้องพลัดถิ่น
นี่คือภาพจากบ้านเกิดของฉัน คาร์คิฟ สถานที่แห่งนี้อยู่ใจกลางเมืองเก่า
ภาพโดย @fomenko_ph (โทรเลข)
โปรดพิจารณาบริจาคหรือเป็นอาสาสมัคร
https://bank.gov.ua/en/
https://savelife.in.ua/en/donate/
https://www.comebackalive.in.ua/donate
https://www.globalgiving.org/projects/ukraine-crisis-relief-fund/
https://www.savethechildren.org/us/where-we-work/ukraine
https://www.facebook.com/donate/1137971146948461/
https://donate.wck.org/give/393234#!/donation/checkout
https://atlantaforukraine.com/
นี่คือไคลเอนต์ postgres ที่ทำการเติมข้อความอัตโนมัติและการเน้นไวยากรณ์
หน้าแรก: http://pgcli.com
เทียบเท่ากับ MySQL: http://mycli.net
หากคุณรู้วิธีติดตั้งแพ็คเกจ python อยู่แล้ว คุณก็ทำสิ่งต่อไปนี้ได้:
$ pip ติดตั้ง -U pgcli หรือ $ sudo apt-get install pgcli # เฉพาะบน Linux ที่ใช้ Debian เท่านั้น (เช่น Ubuntu, Mint เป็นต้น) $ ชงติดตั้ง pgcli # บน macOS เท่านั้น
หากคุณไม่ทราบวิธีติดตั้งแพ็คเกจ Python โปรดตรวจสอบคำแนะนำโดยละเอียด
$ pgcli [ฐานข้อมูล_ชื่อ] หรือ $ pgcli postgresql://[ผู้ใช้[:รหัสผ่าน]@][netloc][:พอร์ต][/dbname][?พิเศษ=ค่า[&อื่นๆ=ค่าอื่นๆ]]
ตัวอย่าง:
$ pgcli local_database $ pgcli postgres://amjith:[email protected]:5432/app_db?sslmode=verify-ca&sslrootcert=/myrootcert
สำหรับรายละเอียดเพิ่มเติม:
$ pgcli --help การใช้งาน: pgcli [ตัวเลือก] [DBNAME] [USERNAME] ตัวเลือก: -h, --host TEXT ที่อยู่โฮสต์ของฐานข้อมูล postgres -p, --port INTEGER หมายเลขพอร์ตที่เป็นอินสแตนซ์ postgres การฟัง. -U, --ชื่อผู้ใช้ TEXT ชื่อผู้ใช้เพื่อเชื่อมต่อกับฐานข้อมูล postgres -u, --user TEXT ชื่อผู้ใช้เพื่อเชื่อมต่อกับฐานข้อมูล postgres -W, --password บังคับรหัสผ่าน -w, --no-password ไม่ต้องขอรหัสผ่าน --single-connection อย่าใช้การเชื่อมต่อแยกต่างหากเพื่อให้เสร็จสิ้น -v, --version เวอร์ชันของ pgcli -d, --dbname ชื่อฐานข้อมูล TEXT ที่จะเชื่อมต่อ --pgclirc FILE ตำแหน่งของไฟล์ pgclirc -D, --dsn TEXT ใช้ DSN ที่กำหนดค่าไว้ในส่วน [alias_dsn] ของไฟล์ pgclirc --list-dsn รายการ DSN ที่กำหนดค่าไว้ใน [alias_dsn] ส่วนของไฟล์ pgclirc --row-limit INTEGER กำหนดเกณฑ์สำหรับพร้อมท์การจำกัดแถว ใช้ 0 ถึง ปิดการใช้งานพรอมต์ --less-chatty ข้ามบทนำเมื่อเริ่มต้นและลาเมื่อออก --prompt TEXT รูปแบบพรอมต์ (ค่าเริ่มต้น: "u@h:d> ") --prompt-dsn TEXT Prompt รูปแบบสำหรับการเชื่อมต่อโดยใช้นามแฝง DSN (ค่าเริ่มต้น: "u@h:d> ") -l, --list แสดงรายการฐานข้อมูลที่มีอยู่แล้วออก --auto-vertical-output สลับไปยังโหมดเอาต์พุตแนวตั้งโดยอัตโนมัติหาก ผลลัพธ์ที่ได้จะกว้างกว่าความกว้างของเทอร์มินัล --warn [ทั้งหมด|ปานกลาง|ปิด] เตือนก่อนที่จะเรียกใช้แบบสอบถามแบบทำลายล้าง --help แสดงข้อความนี้และออก
pgcli
ยังสนับสนุนตัวแปรสภาพแวดล้อมหลายตัวเช่นเดียวกับ psql
สำหรับตัวเลือกการเข้าสู่ระบบ (เช่น PGHOST
, PGPORT
, PGUSER
, PGPASSWORD
, PGDATABASE
)
นอกจากนี้ยังรองรับตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับ SSL ดังนั้นหากคุณต้องการเชื่อมต่อฐานข้อมูล postgres ผ่านการเชื่อมต่อ SSL คุณสามารถตั้งค่าสภาพแวดล้อมที่ตั้งค่าได้ดังนี้:
ส่งออก PGSSLMODE = "ยืนยันเต็ม" ส่งออก PGSSLCERT="/your-path-to-certs/client.crt" ส่งออก PGSSLKEY="/your-path-to-keys/client.key" ส่งออก PGSSLROOTCERT="/your-path-to-ca/ca.crt" pgcli -h localhost -p 5432 -U ชื่อผู้ใช้ postgres
pgcli เขียนโดยใช้ prompt_toolkit
เติมข้อความอัตโนมัติเมื่อคุณพิมพ์คำสำคัญ SQL รวมถึงตารางและคอลัมน์ในฐานข้อมูล
การเน้นไวยากรณ์โดยใช้ Pygments
การเติมข้อความให้สมบูรณ์อัจฉริยะ (เปิดใช้งานโดยค่าเริ่มต้น) จะแนะนำการเติมข้อความให้สมบูรณ์ตามบริบท
SELECT * FROM <tab>
จะแสดงเฉพาะชื่อตารางเท่านั้น
SELECT * FROM users WHERE <tab>
จะแสดงเฉพาะชื่อคอลัมน์เท่านั้น
การสนับสนุนดั้งเดิมสำหรับคำสั่งแบ็กสแลช psql
Pretty พิมพ์ข้อมูลแบบตาราง
ไฟล์กำหนดค่าจะถูกสร้างขึ้นโดยอัตโนมัติที่ ~/.config/pgcli/config
เมื่อเปิดใช้งานครั้งแรก ดูไฟล์เพื่อดูคำอธิบายของตัวเลือกที่มีทั้งหมด
หากคุณสนใจที่จะมีส่วนร่วมในโครงการนี้ ก่อนอื่นฉันอยากจะแสดงความขอบคุณจากใจจริง ฉันได้เขียนเอกสารขนาดเล็กเพื่ออธิบายวิธีดำเนินการนี้ในการตั้งค่าการพัฒนา
https://github.com/dbcli/pgcli/blob/master/DEVELOP.rst
โปรดติดต่อเราหากคุณต้องการความช่วยเหลือ * Amjith ผู้เขียน pgcli: [email protected], Twitter: @amjithr * Irina ผู้ดูแล pgcli: [email protected], Twitter: @irinatruong
วิธีที่ง่ายที่สุดในการติดตั้ง pgcli คือการใช้ Homebrew
$ ชงติดตั้ง pgcli
เสร็จแล้ว!
หรือคุณสามารถติดตั้ง pgcli
เป็นแพ็คเกจ python โดยใช้ตัวจัดการแพ็คเกจที่เรียกว่า pip
คุณจะต้องติดตั้ง postgres บนระบบของคุณจึงจะสามารถใช้งานได้
คู่มือการเริ่มต้นใช้งาน pip
แบบเจาะลึก - https://pip.pypa.io/en/latest/installation/
$ pip อันไหน
หากติดตั้งแล้ว คุณสามารถทำได้:
$ pip ติดตั้ง pgcli
หากไม่สำเร็จเนื่องจากปัญหาด้านสิทธิ์ คุณอาจต้องเรียกใช้คำสั่งด้วยสิทธิ์ sudo
$ sudo pip ติดตั้ง pgcli
หากไม่ได้ติดตั้ง pip ให้ตรวจสอบว่า easy_install พร้อมใช้งานบนระบบหรือไม่
$ ซึ่ง easy_install $ sudo easy_install pgcli
คู่มือการเริ่มต้นใช้งาน pip
แบบเจาะลึก - https://pip.pypa.io/en/latest/installation/
ตรวจสอบว่า pip มีอยู่ในระบบของคุณแล้วหรือไม่
$ pip อันไหน
หากไม่มีอยู่ ให้ใช้ตัวจัดการแพ็คเกจ linux เพื่อติดตั้ง pip นี่อาจมีลักษณะดังนี้:
$ sudo apt-get ติดตั้ง python-pip # Debian, Ubuntu, Mint เป็นต้น หรือ $ sudo yum ติดตั้ง python-pip # RHEL, Centos, Fedora เป็นต้น
pgcli
ต้องการแพ็คเกจ python-dev, libpq-dev และ libevent-dev คุณสามารถติดตั้งสิ่งเหล่านี้ผ่านตัวจัดการแพ็คเกจระบบปฏิบัติการของคุณ
$ sudo apt-get ติดตั้ง python-dev libpq-dev libevent-dev หรือ $ sudo yum ติดตั้ง python-devel postgresql-devel
จากนั้นคุณสามารถติดตั้ง pgcli:
$ sudo pip ติดตั้ง pgcli
Pgcli สามารถเรียกใช้จากภายใน Docker สิ่งนี้มีประโยชน์ในการลองใช้ pgcli โดยไม่ต้องติดตั้งหรืออ้างอิงใดๆ ทั่วทั้งระบบ
วิธีสร้างภาพ:
$ นักเทียบท่า build -t pgcli
วิธีสร้างคอนเทนเนอร์จากรูปภาพ:
$ นักเทียบท่าทำงาน --rm -ti pgcli pgcli <ARGS>
หากต้องการเข้าถึงฐานข้อมูล postgresql ที่ฟังบน localhost ตรวจสอบให้แน่ใจว่าได้เรียกใช้นักเทียบท่าใน "โหมดโฮสต์เน็ต" เช่นในการเข้าถึงฐานข้อมูลที่เรียกว่า "foo" บนเซิร์ฟเวอร์ postgresql ที่ทำงานบน localhost:5432 (พอร์ตมาตรฐาน):
$ docker run --rm -ti --net โฮสต์ pgcli pgcli -h localhost foo
หากต้องการเชื่อมต่อกับอินสแตนซ์ที่ทำงานอยู่ในเครื่องผ่านซ็อกเก็ตยูนิกซ์ ให้ผูกซ็อกเก็ตกับคอนเทนเนอร์นักเทียบท่า:
$ นักเทียบท่าวิ่ง --rm -ti -v /var/run/postgres:/var/run/postgres pgcli pgcli foo
Pgcli สามารถเรียกใช้จากภายในคอนโซล IPython เมื่อทำงานกับการสืบค้น อาจมีประโยชน์ที่จะเข้าสู่เซสชัน pgcli โดยไม่ต้องออกจากคอนโซล IPython วนซ้ำการสืบค้น จากนั้นออกจาก pgcli เพื่อค้นหาผลลัพธ์การสืบค้นในพื้นที่ทำงาน IPython ของคุณ
สมมติว่าคุณติดตั้ง IPython แล้ว:
$ pip ติดตั้ง ipython-sql
หลังจากนั้นให้รัน ipython และโหลดส่วนขยาย pgcli.magic
:
$ipython ใน [1]: %load_ext pgcli.magic
เชื่อมต่อกับฐานข้อมูลและสร้างแบบสอบถาม:
ใน [2]: %pgcli postgres://someone@localhost:5432/world เชื่อมต่อแล้ว: someone@world someone@localhost:world> เลือก * จากเมือง c โดยที่รหัสประเทศ = 'USA' และประชากร> 1000000; - - รหัส | ชื่อ | รหัสประเทศ | อำเภอ | ประชากร | - - 3793 | นิวยอร์ก | สหรัฐอเมริกา | นิวยอร์ก | 8008278 | - 3794 | ลอสแอนเจลิส | สหรัฐอเมริกา | แคลิฟอร์เนีย | 3694820 | - 3795 | ชิคาโก | สหรัฐอเมริกา | อิลลินอยส์ | 2896016 | - 3796 | ฮูสตัน | สหรัฐอเมริกา | เท็กซัส | 1953631 | - 3797 | ฟิลาเดลเฟีย | สหรัฐอเมริกา | เพนซิลเวเนีย | 1517550 | - 3798 | ฟีนิกซ์ | สหรัฐอเมริกา | แอริโซนา | 1321045 | - 3799 | ซานดิเอโก | สหรัฐอเมริกา | แคลิฟอร์เนีย | 1223400 | - 3800 | ดัลลัส | สหรัฐอเมริกา | เท็กซัส | 1188580 | - 3801 | ซานอันโตนิโอ | สหรัฐอเมริกา | เท็กซัส | 1144646 | - เลือก 9 เวลา: 0.003 วินาที
ออกจากเซสชัน pgcli ด้วย Ctrl + D
และค้นหาผลลัพธ์แบบสอบถาม:
someone@localhost:world> ลาก่อน! ได้รับผลกระทบ 9 แถว ออก[2]: [(3793, คุณ'นิวยอร์ก', คุณ'สหรัฐอเมริกา', คุณ'นิวยอร์ก', 8008278), (3794, u'Los Angeles', u'USA', u'California', 3694820), (3795, u'Chicago', u'USA', u'Illinois', 2896016), (3796, u'Houston', u'USA', u'Texas', 1953631) (3797, คุณ'ฟิลาเดลเฟีย', คุณ'สหรัฐอเมริกา', คุณ'เพนซิลเวเนีย', 1517550) (3798, u'Phoenix', u'USA', u'Arizona', 1321045) (3799, คุณ 'ซานดิเอโก', u'USA', u'California', 1223400) (3800, ยู'ดัลลัส', ยู'สหรัฐอเมริกา', ยู'เท็กซัส', 1188580) (3801, คุณ'ซานอันโตนิโอ', u'USA', u'Texas', 1144646)]
ผลลัพธ์มีอยู่ในตัวแปรโลคัลพิเศษ _
และสามารถกำหนดให้กับตัวแปรที่คุณเลือกได้:
ใน [3]: my_result = _
Pgcli ยกเลิกการรองรับ Python<3.8 ตั้งแต่ 4.0.0 หากคุณต้องการให้ติดตั้ง pgcli <= 4.0.0
ขอขอบคุณเป็นพิเศษสำหรับ Jonathan Slenders ที่สร้าง Python Prompt Toolkit ซึ่งเป็นไลบรารี่หลักอย่างแท้จริง ที่ทำให้แอปนี้เป็นไปได้ Jonathan ยังให้ข้อเสนอแนะและการสนับสนุนอันมีค่าในระหว่างการพัฒนาแอพนี้
คลิกใช้สำหรับแยกวิเคราะห์ตัวเลือกบรรทัดคำสั่งและพิมพ์ข้อความแสดงข้อผิดพลาด
ขอขอบคุณ psycopg ที่ให้อินเทอร์เฟซที่แข็งแกร่งกับฐานข้อมูล Postgres
ขอขอบคุณผู้ทดสอบเบต้าและผู้มีส่วนร่วมทุกคนที่สละเวลาและความอดทน -