জ্যাঙ্গোতে ডিবি কীভাবে রিসেট করবেন? আমি একটি আদেশ পেয়েছি 'রিসেট' ত্রুটি পাওয়া যায় নি


99

টিউটোরিয়ালের উদাহরণ অনুসারে এই জ্যাঙ্গো অনুসরণ করুন: http://lightbird.net/dbe/todo_list.html

টিউটোরিয়ালটি বলে:

"এটি আমাদের টেবিলের বিন্যাস পরিবর্তন করে এবং আমাদের জ্যাঙ্গোকে টেবিলগুলি পুনরায় সেট করতে ও পুনরায় তৈরি করতে বলা উচিত:

manage.py reset todo; manage.py syncdb"

যাইহোক, আমি যখন চালাচ্ছি manage.py reset todo, ত্রুটিটি পেয়েছি:

$ python manage.py reset todo                                       
- Unknown command: 'reset'

এটি কি কারণ আমি স্ক্লাইট 3 ব্যবহার করছি এবং পোস্টগ্র্যাস্কিল নয়?

কেউ কি আমাকে বলতে পারেন যে ডাটাবেসটি পুনরায় সেট করতে আদেশটি কি?

কমান্ড: python manage.py sqlclear todoত্রুটি ফিরিয়ে দেয়:

$ python manage.py sqlclear todo    
CommandError: App with label todo could not be found.    
Are you sure your INSTALLED_APPS setting is correct?

সুতরাং আমি আমার INSTALLED_APPS এ সেটিংস.পিতে 'টুডু' যুক্ত করেছি এবং python manage.py sqlclear todoআবার দৌড়েছি , যার ফলে এই ত্রুটি হয়েছে:

$ python manage.py sqlclear todo                                      
- NameError: name 'admin' is not defined

উত্তর:


155

resetflushজ্যাঙ্গো 1.5 দ্বারা প্রতিস্থাপন করা হয়েছে , দেখুন:

python manage.py help flush

4
দুর্ভাগ্যক্রমে এটি পৃথক অ্যাপ্লিকেশনগুলিতে পরিচালিত হয় না যেমন ম্যানেজ.পি রিসেট <appname> করেছে। এটি একটি ত্রুটির ফলস্বরূপ: কমান্ডেরর: কমান্ড কোনও যুক্তি স্বীকার করে না
আন্ড্রে

4
ভাগ্যক্রমে, কেউ এটিকে 1.5 তে ফিরে
রেখেছিল

ধন্যবাদ, জেনে রাখা ভাল, সাম্প্রতিক (mod মাস আগে শেষবার সংশোধিত) ফিক্সচারগুলি সম্পর্কে পাবলিক জ্যাঙ্গো ডকুমেন্টেশন (2019-07-11) 'রিসেট' সম্পর্কে কথা বলে: কোড.ডজ্যাঙ্গোপ্রজেক্ট
উইকি

34

দেখে মনে হচ্ছে 'ফ্লাশ' উত্তরটি কিছু ক্ষেত্রে কার্যকর হবে তবে সমস্ত ক্ষেত্রে তা নয়। আমার কেবল ডাটাবেসের মানগুলি ফ্লাশ করার জন্য নয়, টেবিলগুলি সঠিকভাবে পুনরায় তৈরি করার দরকার ছিল। আমি এখনও (প্রথম দিন) মাইগ্রেশন ব্যবহার করছি না তাই আমার সমস্ত টেবিলগুলি ফেলে দেওয়ার দরকার ছিল।

দুটি উপায়ে আমি সমস্ত টেবিল ফেলে রেখেছি, উভয়ের জন্য কোর জ্যাঙ্গো ছাড়াও অন্য কিছু দরকার something

আপনি যদি হেরোকুতে থাকেন, পিজি সহ সমস্ত টেবিলটি ফেলে দিন: রিসেট:

heroku pg:reset DATABASE_URL
heroku run python manage.py syncdb

আপনি যদি জ্যাঙ্গো এক্সটেনশানগুলি ইনস্টল করতে পারেন তবে এটির একটি সম্পূর্ণ পুনরায় সেট করার উপায় রয়েছে:

python ./manage.py reset_db --router=default

6
@ জোনালভ, আপনাকে প্রথমে জ্যাঙ্গো -এক্সটেনশানগুলি ইনস্টল করতে হবে ।
edjroot

6
এছাড়াও, আপনি নীচে অন্তর্ভুক্ত থাকতে হবে INSTALLED_APPSমধ্যে settings.py
ম্যাক্স ক্যান্ডোসিয়া

21

লিসাডের উত্তরের অনুরূপ, জ্যাঙ্গো এক্সটেনশনের একটি দুর্দান্ত রিসেট_ডিবি কমান্ড রয়েছে যা "ফ্লাশ" এর মতো সারণীগুলি কেবল কাটানোর পরিবর্তে সমস্ত কিছু একেবারে কমিয়ে দেয়।

python ./manage.py reset_db

কেবলমাত্র টেবিলগুলি ফ্লাশ করা যখন আমি অবজেক্টগুলি মোছার সময় ঘটেছিল তখন একটি ক্রমাগত ত্রুটি ঠিক করা হয়নি। একটি রিসেট_ডিবি করা সমস্যার সমাধান করে।


4
এটিই আমি খুঁজছিলাম, তবে আমার পক্ষে কোনও --routerযুক্তি সরবরাহ করতে হয়নি , সম্ভবত এটি এখন alচ্ছিক, পাঁচ বছর পরে? :)
damd


11

আপনি যদি পুরো ডাটাবেসটি পরিষ্কার করতে চান তবে আপনি ব্যবহার করতে পারেন: পাইথন ম্যানেজ.পি ফ্ল্যাশ আপনি যদি জ্যাঙ্গো অ্যাপের ডাটাবেস টেবিলটি পরিষ্কার করতে চান তবে আপনি ব্যবহার করতে পারেন: পাইথন ম্যানেজ.পি অ্যাপ্লিকেশন শূন্য স্থানান্তর করুন


9

জাঙ্গো 1.11 migrationsএর সাহায্যে প্রতিটি অ্যাপ্লিকেশনের ফোল্ডার (সমস্ত ফাইল বাদে __init__.py) সমস্ত মাইগ্রেশন ফাইলগুলি মুছুন । তারপরে

  1. ম্যানুয়ালি ডাটাবেস ড্রপ।
  2. ম্যানুয়ালি ডাটাবেস তৈরি করুন।
  3. চালান python3 manage.py makemigrations
  4. চালান python3 manage.py migrate

এবং ভয়েলা, আপনার ডাটাবেস সম্পূর্ণ পুনরায় সেট করা হয়েছে।


যদি স্ক্লাইট ব্যবহার করা হয় তবে ম্যানুয়ালি ডাটাবেস তৈরি করার দরকার নেই, python3 manage.py makemigrationsএবং python3 manage.py migrateএটি যত্ন নেবে, কমপক্ষে
জাজানো

4

আমার জন্য এটি সমস্যার সমাধান করেছে।

heroku pg:reset DATABASE_URL

heroku run bash
>> Inside heroku bash
cd app_name && rm -rf migrations && cd ..
./manage.py makemigrations app_name
./manage.py migrate

3

@ লিসাডের উত্তরের অনুসরণ করুন ।
২০১ (( Django 1.9) হিসাবে আপনার টাইপ করতে হবে:

heroku pg:reset DATABASE_URL
heroku run python manage.py makemigrations
heroku run python manage.py migrate

এটি আপনাকে হিরোকুর মধ্যে একটি নতুন ডেটাবেস দেবে।


1
  1. ম্যানুয়ালি আপনার ডাটাবেস মুছুন। নিশ্চিত করুন যে আপনি প্রথমে ব্যাকআপ তৈরি করেছেন (আমার ক্ষেত্রে db.sqlite3 আমার ডাটাবেস)

  2. এই আদেশটি চালান manage.py migrate


1
python manage.py flush

পুরানো ডিবি সামগ্রী মুছে ফেলা হয়েছে,

নতুন সুপারভাইজার তৈরি করতে ভুলবেন না:

python manage.py createsuperuser
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.