यहाँ वह समाधान है जो मैंने पाया है जो काफी अच्छा काम करता है, हालाँकि यह आदर्श नहीं है क्योंकि आपको अपनी SQL स्क्रिप्ट को बदलना होगा।
आपके application.properties
. में फ़ाइल डेटा स्रोत विभाजक गुण बदलें:
spring.datasource.separator=^;
फिर अपने schema.sql
को अपडेट करें इस प्रकार देखने के लिए फ़ाइल:
CREATE PROCEDURE Alter_Table()
BEGIN
IF NOT EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'test_table'
AND table_schema = 'test'
AND column_name = 'cc_test_id') THEN
alter table test_table add cc_test_id VARCHAR(128) NOT NULL;
END IF;
END ^;
call Alter_Table ^;
DELIMITER कमांड केवल MySQL CLI क्लाइंट और वर्कबेंच के साथ काम करता है और स्प्रिंग बूट डेटाबेस इनिशियलाइज़ेशन के लिए काम नहीं करेगा। एक बार जब आप DELIMITER कमांड को हटा देते हैं, तब भी स्प्रिंग बूट एक अपवाद को फेंक देगा क्योंकि यह ;
को नहीं समझेगा। संग्रहीत कार्यविधियों में वर्ण अलग-अलग कथन नहीं हैं, इसलिए आपको डेटा स्रोत विभाजक गुण को वैकल्पिक हल के रूप में बदलना होगा।