প্রকল্প সম্পর্কে
migrate হলো Go ভাষায় লেখা একটি ডেটাবেস মাইগ্রেশন টুল, যা কমান্ড-লাইন ইন্টারফেস হিসেবে বা Go প্রজেক্টে লাইব্রেরি হিসেবে ইমপোর্ট করে ব্যবহার করা যায়। এটি mattes/migrate থেকে ফর্ক করা হয়েছে।
এটি যেভাবে কাজ করে: migrate কনফিগার করা সোর্স থেকে মাইগ্রেশন ফাইল পড়ে এবং সঠিক ক্রমে টার্গেট ডেটাবেসে প্রয়োগ করে। ডিজাইনে ডেটাবেস ড্রাইভারগুলো হালকা এবং "নিষ্ক্রিয়" রাখা হয়েছে — migrate নিজেই লজিক সমন্বয় করে এবং আচরণ যাচাই করে, আর ড্রাইভাররা ব্যবহারকারীর ইনপুট অনুমান বা সংশোধন করা এড়িয়ে চলে, সন্দেহ হলে ব্যর্থ হয়।
সমর্থিত ডেটাবেসগুলোর মধ্যে রয়েছে PostgreSQL, PGX v4 ও v5, Redshift, Ql, Cassandra/ScyllaDB, SQLite, SQLite3, SQLCipher, MySQL/MariaDB, Neo4j, MongoDB, CrateDB, Shell, Google Cloud Spanner, CockroachDB, YugabyteDB, ClickHouse, Firebird, MS SQL Server এবং rqlite। সংযোগ স্ট্রিং URL ফরম্যাট ব্যবহার করে, যেমন dbdriver://username:password@host:port/dbname?param1=true, এবং URL-এর সংরক্ষিত অক্ষরগুলো percent-encoded হতে হবে।
মাইগ্রেশন সোর্সগুলোর মধ্যে রয়েছে লোকাল ফাইলসিস্টেম, Go io/fs, Go-Bindata, pkger, GitHub, GitHub Enterprise, Bitbucket, GitLab, AWS S3 এবং Google Cloud Storage।
CLI হলো লাইব্রেরির একটি পাতলা র্যাপার, এটি Ctrl+C (SIGINT) সুন্দরভাবে হ্যান্ডেল করে এবং ইচ্ছাকৃতভাবে কনফিগ সার্চ পাথ, কনফিগ ফাইল বা ম্যাজিক এনভায়রনমেন্ট ভেরিয়েবল ইনজেকশন এড়িয়ে চলে। একটি সাধারণ আহ্বান এরকম দেখায়: migrate -source file://path/to/migrations -database postgres://localhost:5432/database up 2। একটি Docker ইমেজ (migrate/migrate)ও প্রকাশিত হয়েছে।
Go লাইব্রেরি হিসেবে, API-কে v3 ও v4 রিলিজের জন্য স্থিতিশীল এবং হিমায়িত বলা হয়েছে, এটি Go মডিউল ব্যবহার করে, GracefulStop চ্যানেলের মাধ্যমে graceful stop সমর্থন করে যা ডেটাবেস দুর্নীতি এড়াতে সাহায্য করে, নিজস্ব লগার ব্যবহারের সুযোগ দেয়, অভ্যন্তরীণভাবে io.Reader স্ট্রিম ব্যবহার করে কম মেমরি ওভারহেড নিশ্চিত করে, এবং থ্রেড-সেফ ও গোরুটিন লিকমুক্ত বলে বর্ণিত। এটি এককভাবে বা WithInstance-এর মাধ্যমে বিদ্যমান ডেটাবেস ক্লায়েন্টের সাথে ব্যবহার করা যায়।
মাইগ্রেশন ফাইলগুলো সাধারণত up এবং down মাইগ্রেশনের জোড়ায় আসে, যেমন 1481574547_create_users_table.up.sql এবং .down.sql। প্রজেক্টটি একটি গেটিং স্টার্টেড গাইড, CockroachDB ও PostgreSQL-এর জন্য টিউটোরিয়াল, মাইগ্রেশন লেখার জন্য সেরা-অনুশীলন ডকুমেন্টেশন এবং একটি FAQ-এর দিকে নির্দেশ করে। v3 সংস্করণ আর সমর্থিত নয়; v4 এবং master হলো সমর্থিত লাইন।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.