{
    "componentChunkName": "component---src-templates-issues-tsx",
    "path": "/issues/61",
    "result": {"data":{"issuesJson":{"id":"fe7b3ea3-c62f-5fe2-98ad-33321f401243","title":"Bytebase/Bytebase: 面向开发人员、DBA 和平台工程团队的世界上最先进的数据库 DevOps 和 CI/CD","number":61,"bodyHTML":"<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a><br><br></p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th align=\"right\">Repos</th>\n<th align=\"left\"><a href=\"https://github.com/Bytebase/Bytebase\">Bytebase/Bytebase</a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"right\"><strong>Views</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/f45a282eb9f043cb092c04193611320954d1ef4f9dac31572bb0c2e8f150f292/68747470733a2f2f76696577732e77686174696c656172656e65642e746f6461792f76696577732f6769746875622f42797465626173652f42797465626173652e737667\" alt=\"views\" data-canonical-src=\"https://views.whatilearened.today/views/github/Bytebase/Bytebase.svg\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Stars</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/70a4fa525165a7cc875a69f467f8c590d8eaa9c4323954afdc303099fa495a81/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f42797465626173652f42797465626173653f636f6c6f723d663266303864266c6f676f3d556e64657274616c65266c6f676f436f6c6f723d656234363330\" alt=\"stars\" data-canonical-src=\"https://img.shields.io/github/stars/Bytebase/Bytebase?color=f2f08d&amp;logo=Undertale&amp;logoColor=eb4630\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Forks</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/804a14e0c121c86b0a02bb5abb3dd3d6972c553d682223eaaa0fed6da838c1eb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f42797465626173652f42797465626173653f636f6c6f723d626138366562266c6f676f3d48616e647368616b65266c6f676f436f6c6f723d656136616136\" alt=\"forks\" data-canonical-src=\"https://img.shields.io/github/forks/Bytebase/Bytebase?color=ba86eb&amp;logo=Handshake&amp;logoColor=ea6aa6\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>License</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/0c93ca71e73bb599dbfbd81eb5bbb82f63a427dc55ced5d8a7de2d4025f1f1c5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c2d4e4f4e452d626c75653f6c6f676f3d756e6c6963656e7365\" alt=\"license\" data-canonical-src=\"https://img.shields.io/badge/L-NONE-blue?logo=unlicense\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>UpdatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/044e6badba4c7b285c5daed27e47f43120e2c0c279996ce22bcb185be2cc29ee/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f42797465626173652f42797465626173653f646973706c61795f74696d657374616d703d636f6d6d6974746572266c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d557064617465644174\" alt=\"last-commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/Bytebase/Bytebase?display_timestamp=committer&amp;logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=UpdatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>CreatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/701ca431665437ca1f14afdd7710e3c91aa271138043aac5e9f559fb74552f0c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f637265617465642d61742f42797465626173652f42797465626173653f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d437265617465644174\" alt=\"create-at\" data-canonical-src=\"https://img.shields.io/github/created-at/Bytebase/Bytebase?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=CreatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<a href=\"https://github.com/opsre/awesome-ops\">\n</a><p dir=\"auto\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/b964a36ea4078c39f603d46a29436371c7541a2f26e0228d7b21b9d9805b43d3/68747470733a2f2f736f6369616c6966792e6769742e63692f6f707372652f617765736f6d652d6f70732f696d6167653f6465736372697074696f6e3d3126666f6e743d42697474657226666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246617661746172732e67697468756275736572636f6e74656e742e636f6d25324675253246313838353638303230266e616d653d31266f776e65723d31267061747465726e3d436972637569742b426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874\" alt=\"\" data-canonical-src=\"https://socialify.git.ci/opsre/awesome-ops/image?description=1&amp;font=Bitter&amp;forks=1&amp;issues=1&amp;language=1&amp;logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F188568020&amp;name=1&amp;owner=1&amp;pattern=Circuit+Board&amp;pulls=1&amp;stargazers=1&amp;theme=Light\" style=\"max-width: 100%;\"></a></p>\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a>\n</div>\n<h1 align=\"center\" dir=\"auto\">\n  <a href=\"https://bytebase.com?source=github\" rel=\"nofollow\">\n    <img align=\"center\" alt=\"Bytebase\" src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/banner.webp\" style=\"max-width: 100%;\">\n  </a>\n</h1>\n<p align=\"center\" dir=\"auto\">\n  <a href=\"https://bytebase.com/docs/get-started/self-host\" rel=\"nofollow\"><b>⚙️ Install</b></a> •\n  <a href=\"https://bytebase.com/docs/introduction/what-is-bytebase\" rel=\"nofollow\"><b>📚 Docs</b></a> •\n  <a href=\"https://discord.gg/huyw7gRsyA\" rel=\"nofollow\"><b>💬 Discord</b></a> •\n  <a href=\"https://www.bytebase.com/request-demo/\" rel=\"nofollow\"><b>🙋‍♀️ Book Demo</b></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n  <a href=\"https://goreportcard.com/report/github.com/bytebase/bytebase\" rel=\"nofollow\">\n    <img alt=\"go report\" src=\"https://camo.githubusercontent.com/d0db3aa1976842243f099d67549c0da9d9229eb14b8daebed63cc5e6e279e660/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f62797465626173652f6279746562617365\" data-canonical-src=\"https://goreportcard.com/badge/github.com/bytebase/bytebase\" style=\"max-width: 100%;\">\n  </a>\n  <a href=\"https://artifacthub.io/packages/search?repo=bytebase\" rel=\"nofollow\">\n    <img alt=\"Artifact Hub\" src=\"https://camo.githubusercontent.com/bfbd9e9330f01ceeb960560edf921e329c77229db30b8f5a70e8275d2d5d6995/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f61727469666163746875622e696f2f62616467652f7265706f7369746f72792f6279746562617365\" data-canonical-src=\"https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/bytebase\" style=\"max-width: 100%;\">\n  </a>\n    <a href=\"https://github.com/bytebase/bytebase\">\n    <img alt=\"Github Stars\" src=\"https://camo.githubusercontent.com/7d6e452da1d9f7bd90155ac0ece7da04aeb2ed84f4136f310e425bf70d4a3a42/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f62797465626173652f62797465626173653f6c6f676f3d676974687562\" data-canonical-src=\"https://img.shields.io/github/stars/bytebase/bytebase?logo=github\" style=\"max-width: 100%;\">\n  </a>\n</p>\n<p align=\"center\" dir=\"auto\">\n  <b> Different </b> database development tasks\n</p>\n<p align=\"center\" dir=\"auto\">\n  <b> Multiple </b> database systems\n</p>\n<p align=\"center\" dir=\"auto\">\n  <b> Unified </b> process\n</p>\n<p align=\"center\" dir=\"auto\">\n  <b> Single </b> tool\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/your-dev-vs-competitor-hitman.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/your-dev-vs-competitor-hitman.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/fish.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/fish.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/change-query-secure-govern.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/change-query-secure-govern.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">🪜</p>\n<h1 align=\"center\" dir=\"auto\">Change</h1>\n<p align=\"center\" dir=\"auto\">\n  Want to formalize the database change process but don't know how?\n</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><b>Standard Operating Procedure (SOP) </b><br>Standardize the database schema and data change process across different database systems, small or <a href=\"https://www.bytebase.com/docs/change-database/online-schema-migration-for-mysql\" rel=\"nofollow\">large tables</a> and <a href=\"https://www.bytebase.com/docs/change-database/batch-change/#change-databases-from-multiple-tenants\" rel=\"nofollow\">different tenants</a>.<br><br><b>SQL Review</b><br><a href=\"https://www.bytebase.com/docs/sql-review/review-rules\" rel=\"nofollow\">100+ lint rules</a> to detect SQL anti-patterns and enforce consistent SQL style in the organization.<br><br><b>GitOps</b><br><a href=\"https://www.bytebase.com/docs/vcs-integration/overview\" rel=\"nofollow\">Point-and-click GitHub and GitLab integration</a> to enable GitOps workflow for changing database.</td>\n<td><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/issue-detail.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/issue-detail.webp\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<p align=\"center\" dir=\"auto\">🔮</p>\n<h1 align=\"center\" dir=\"auto\">Query</h1>\n<p align=\"center\" dir=\"auto\">\n  Want to control the data access but don't know how?\n</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><b>All-in-one SQL Editor</b><br>Web-based IDE specifically for performing SQL specific tasks.<br><br><b>Data Masking</b><br>State-of-the-art <a href=\"https://www.bytebase.com/docs/sql-editor/mask-data\" rel=\"nofollow\">column level masking</a> engine to cover complex situations like subquery, CTE.<br><br><b>Data Access Control</b><br>Organization level policy to centralize the <a href=\"https://www.bytebase.com/docs/security/database-permission/overview\" rel=\"nofollow\">database permission</a>.</td>\n<td><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-editor.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-editor.webp\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<p align=\"center\" dir=\"auto\">🔒</p>\n<h1 align=\"center\" dir=\"auto\">Secure</h1>\n<p align=\"center\" dir=\"auto\">\n  Want to avoid data leakage, change outage and detect malicious behavior but don't know how?\n</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><b>Centralize Change, Query and Admin Tasks</b><br>A single place to perform different tasks on different databases, thus enforce policy and monitor activity accordingly. <br><br><b>RBAC</b><br><a href=\"https://www.bytebase.com/docs/concepts/roles-and-permissions\" rel=\"nofollow\">Two-level RBAC model</a> mapping to the organization wide privileges and application team privileges respectively.<br><br><b>Drift detection and Audit Logging</b><br> Capture all database schema drifts, user actions and system events and present them in a holistic view.</td>\n<td><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/grant-access.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/grant-access.webp\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<p align=\"center\" dir=\"auto\">👩‍💼</p>\n<h1 align=\"center\" dir=\"auto\">Govern</h1>\n<p align=\"center\" dir=\"auto\">\n  Want to enforce organization policy but don't know how?\n</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><b>Manage Database Resources</b><br> A single place to manage environments, database instances, database users for application development, with optional <a href=\"https://registry.terraform.io/providers/bytebase/bytebase/latest/docs\" rel=\"nofollow\">Terraform integration</a>. <br><br><b>Policy Enforcement</b><br>Enforce organization wide SQL Review policy, backup policy and data access policy.<br><br><b>SQL Editor Admin mode</b><br><a href=\"https://www.bytebase.com/docs/sql-editor/admin-mode\" rel=\"nofollow\">CLI like experience</a> without setting up bastion.</td>\n<td><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-review-policy.webp\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-review-policy.webp\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<h1 dir=\"auto\">🖖 Intro</h1>\n<p dir=\"auto\"><a href=\"https://www.youtube.com/watch?v=7UE78BufSLM\" rel=\"nofollow\"><img src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/product-video-thumbnail.webp\" alt=\"Watch the 30-second product video\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Bytebase is a Database CI/CD solution for the Developers and DBAs. It's the <strong>only database CI/CD project</strong> included by the <a href=\"https://landscape.cncf.io/?selected=bytebase\" rel=\"nofollow\">CNCF Landscape</a> and <a href=\"https://platformengineering.org/tools/bytebase\" rel=\"nofollow\">Platform Engineering</a>. The Bytebase family consists of these tools:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://bytebase.com/?source=github\" rel=\"nofollow\">Bytebase Console</a>: A web-based GUI for developers and DBAs to manage the database development lifecycle.</li>\n<li><a href=\"https://www.bytebase.com/docs/api/overview\" rel=\"nofollow\">Bytebase API</a>: Provide both gRPC and RESTful API to manipulate every aspect of Bytebase.</li>\n<li><a href=\"https://github.com/bytebase/sql-review-action\">SQL Review GitHub Action</a>: The GitHub Action to detect SQL anti-patterns and enforce a consistent SQL style guide during Pull Request.</li>\n<li><a href=\"https://registry.terraform.io/providers/bytebase/bytebase/latest/docs\" rel=\"nofollow\">Terraform Bytebase Provider</a>: The Terraform<br>\nprovider enables team to manage Bytebase resources via Terraform. A typical setup involves teams using<br>\nTerraform to provision database instances from Cloud vendors, followed by using Bytebase provider to<br>\nprepare those instances ready for application use.</li>\n</ul>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th align=\"left\">Topic</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>🔧</td>\n<td align=\"left\"><b><a href=\"#-installation\">Installation</a></b></td>\n</tr>\n<tr>\n<td>🎮</td>\n<td align=\"left\"><b><a href=\"#-demo\">Demo</a></b></td>\n</tr>\n<tr>\n<td>👩‍🏫</td>\n<td align=\"left\"><b><a href=\"#-tutorials\">Tutorials</a></b></td>\n</tr>\n<tr>\n<td>💎</td>\n<td align=\"left\"><b><a href=\"#-design-principles\">Design Principles</a></b></td>\n</tr>\n<tr>\n<td>🧩</td>\n<td align=\"left\"><b><a href=\"#-data-model\">Data Model</a></b></td>\n</tr>\n<tr>\n<td>🎭</td>\n<td align=\"left\"><b><a href=\"#-roles\">Roles</a></b></td>\n</tr>\n<tr>\n<td>🕊</td>\n<td align=\"left\"><b><a href=\"#-developing-and-contributing\">Developing and Contributing</a></b></td>\n</tr>\n<tr>\n<td>🤺</td>\n<td align=\"left\"><b><a href=\"#-bytebase-vs-alternatives\">Bytebase vs Alternatives</a></b></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<h1 dir=\"auto\">🔧 Installation</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/docs/get-started/self-host/\" rel=\"nofollow\">Docker</a></li>\n<li><a href=\"https://www.bytebase.com/docs/get-started/install/deploy-to-kubernetes\" rel=\"nofollow\">Kubernetes</a></li>\n<li><a href=\"https://www.bytebase.com/docs/get-started/install/build-from-source-code\" rel=\"nofollow\">Build from source</a></li>\n</ul>\n<br>\n<h1 dir=\"auto\">🎮 Demo</h1>\n<p dir=\"auto\">Live demo at <a href=\"https://demo.bytebase.com\" rel=\"nofollow\">https://demo.bytebase.com</a></p>\n<p dir=\"auto\">You can also <a href=\"https://cal.com/bytebase/product-walkthrough\" rel=\"nofollow\">book a 30min product walkthrough</a> with one of<br>\nour product experts.</p>\n<br>\n<h1 dir=\"auto\">👩‍🏫 Tutorials</h1>\n<p dir=\"auto\">Product tutorials are available at <a href=\"https://www.bytebase.com/tutorial\" rel=\"nofollow\">https://www.bytebase.com/tutorial</a>.</p>\n<h2 dir=\"auto\">Integrations</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/docs/how-to/integrations/supabase\" rel=\"nofollow\">Manage Supabase PostgreSQL</a></li>\n<li><a href=\"https://www.bytebase.com/docs/how-to/integrations/render\" rel=\"nofollow\">Manage render PostgreSQL</a></li>\n<li><a href=\"https://www.bytebase.com/docs/how-to/integrations/neon\" rel=\"nofollow\">Manage Neon database</a></li>\n<li><a href=\"https://www.bytebase.com/docs/get-started/install/deploy-to-sealos\" rel=\"nofollow\">Deploy to sealos</a></li>\n<li><a href=\"https://www.bytebase.com/docs/get-started/install/deploy-to-rainbond\" rel=\"nofollow\">Deploy to Rainbond</a></li>\n</ul>\n<br>\n<h1 dir=\"auto\">💎 Design Principles</h1>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>🪶</td>\n<td>Dependency Free</td>\n<td>Start with a single command <code class=\"notranslate\">./bytebase</code> without any external dependency. External PostgreSQL data store and others are optional.</td>\n</tr>\n<tr>\n<td>🔗</td>\n<td>Integration First</td>\n<td>Solely focus on database management and leave the rest to others. We have native VCS integration with <a href=\"https://www.bytebase.com/docs/vcs-integration/overview\" rel=\"nofollow\">GitHub/GitLab</a>, <a href=\"https://registry.terraform.io/providers/bytebase/bytebase/latest/docs\" rel=\"nofollow\">Terraform Provider</a>, <a href=\"https://www.bytebase.com/docs/change-database/webhook\" rel=\"nofollow\">webhook</a>, and etc.</td>\n</tr>\n<tr>\n<td>💂‍♀️</td>\n<td>Engineering Disciplined</td>\n<td>Disciplined <a href=\"https://www.bytebase.com/changelog\" rel=\"nofollow\">bi-weekly release</a> and <a href=\"https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md\">engineering practice</a>.</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<br>\n<h1 dir=\"auto\">🧩 Data Model</h1>\n<p dir=\"auto\">More details in <a href=\"https://www.bytebase.com/docs/concepts/data-model\" rel=\"nofollow\">Data Model Doc</a>.</p>\n<p align=\"center\" dir=\"auto\">\n    <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/data-model-v2.webp\"><img align=\"center\" alt=\"Data Model\" src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/data-model-v2.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<br>\n<h1 dir=\"auto\">🎭 Roles</h1>\n<p dir=\"auto\">More details in <a href=\"https://www.bytebase.com/docs/concepts/roles-and-permissions\" rel=\"nofollow\">Roles and Permissions Doc</a>.</p>\n<p dir=\"auto\">Bytebase employs RBAC (role based access control) and provides two role sets at the workspace and project level:</p>\n<ul dir=\"auto\">\n<li>Workspace roles: <code class=\"notranslate\">Admin</code>, <code class=\"notranslate\">DBA</code>, <code class=\"notranslate\">Member</code>. The workspace role maps to the role in an organization.</li>\n<li>Project roles: <code class=\"notranslate\">Owner</code>, <code class=\"notranslate\">Developer</code>, <code class=\"notranslate\">Releaser</code>, <code class=\"notranslate\">SQL Editor User</code>, <code class=\"notranslate\">Exporter</code>, <code class=\"notranslate\">Viewer</code>. The project level role maps to the role in a specific team or project.</li>\n</ul>\n<p dir=\"auto\">Every user is assigned a workspace role, and if a particular user is involved in a particular project, then she will also be assigned a project role accordingly.</p>\n<p dir=\"auto\">Below diagram describes a typical mapping between an engineering org and the corresponding roles in the Bytebase workspace</p>\n<p align=\"center\" dir=\"auto\">\n    <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/org-role-mapping.webp\"><img align=\"center\" alt=\"Role Mapping\" src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/org-role-mapping.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<br>\n<h1 dir=\"auto\">🕊 Developing and Contributing</h1>\n<p align=\"center\" dir=\"auto\">\n    <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/techstack.webp\"><img align=\"center\" alt=\"Tech Stack\" src=\"https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/techstack.webp\" style=\"max-width: 100%;\"></a>\n</p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Bytebase is built with a curated tech stack. It is optimized for <strong>developer experience</strong> and is very easy to start<br>\nworking on the code:</p>\n<ol dir=\"auto\">\n<li>It has no external dependency.</li>\n<li>It requires zero config.</li>\n<li>1 command to start backend and 1 command to start frontend, both with live reload support.</li>\n</ol>\n</li>\n<li>\n<p dir=\"auto\">Interactive code walkthrough</p>\n<ul dir=\"auto\">\n<li><a href=\"https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/life-of-a-schema-change.snb.md\" rel=\"nofollow\">Life of a schema change</a></li>\n<li><a href=\"https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/sql-review-source-code-tour.snb.md\" rel=\"nofollow\">SQL Review</a></li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">Follow <a href=\"https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md\">Life of a Feature</a>.</p>\n</li>\n</ul>\n<h2 dir=\"auto\">Dev Environment Setup</h2>\n<h3 dir=\"auto\">Prerequisites</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://golang.org/doc/install\" rel=\"nofollow\">Go</a></li>\n<li><a href=\"https://pnpm.io/installation\" rel=\"nofollow\">pnpm</a></li>\n</ul>\n<h3 dir=\"auto\">Steps</h3>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\">Pull source.</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/bytebase/bytebase\"><pre class=\"notranslate\">git clone https://github.com/bytebase/bytebase</pre></div>\n</li>\n<li>\n<p dir=\"auto\">Create an external Postgres database on localhost.</p>\n<div class=\"highlight highlight-source-sql notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"CREATE USER bbdev SUPERUSER;\nCREATE DATABASE bbdev;\"><pre class=\"notranslate\"><span class=\"pl-k\">CREATE</span> <span class=\"pl-k\">USER</span> <span class=\"pl-en\">bbdev</span> SUPERUSER;\n<span class=\"pl-k\">CREATE</span> <span class=\"pl-k\">DATABASE</span> <span class=\"pl-en\">bbdev</span>;</pre></div>\n</li>\n<li>\n<p dir=\"auto\">Start backend.</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"PG_URL=postgresql://bbdev@localhost/bbdev\ngo build -ldflags &quot;-w -s&quot; -p=16 -o ./.air/bytebase ./backend/bin/server/main.go &amp;&amp; ./.air/bytebase --port 8080 --data . --debug --disable-sample\"><pre class=\"notranslate\">PG_URL=postgresql://bbdev@localhost/bbdev\ngo build -ldflags <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>-w -s<span class=\"pl-pds\">\"</span></span> -p=16 -o ./.air/bytebase ./backend/bin/server/main.go <span class=\"pl-k\">&amp;&amp;</span> ./.air/bytebase --port 8080 --data <span class=\"pl-c1\">.</span> --debug --disable-sample</pre></div>\n</li>\n<li>\n<p dir=\"auto\">Start frontend (with live reload).</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"pnpm --dir frontend i &amp;&amp; pnpm --dir frontend dev\"><pre class=\"notranslate\">pnpm --dir frontend i <span class=\"pl-k\">&amp;&amp;</span> pnpm --dir frontend dev</pre></div>\n<p dir=\"auto\">Bytebase should now be running at <a href=\"http://localhost:3000\" rel=\"nofollow\">http://localhost:3000</a> and change either frontend or backend code would trigger live reload.</p>\n</li>\n</ol>\n<h3 dir=\"auto\">Tips</h3>\n<ul dir=\"auto\">\n<li>Use <a href=\"https://en.inspector.fe-dev.cn/guide/start.html#method1-recommend\" rel=\"nofollow\">Code Inspector</a> to locate<br>\nfrontend code from UI. Hold <code class=\"notranslate\">Option + Shift</code> on Mac or <code class=\"notranslate\">Alt + Shift</code> on Windows</li>\n</ul>\n<br>\n<h1 dir=\"auto\">🤺 Bytebase vs Alternatives</h1>\n<h2 dir=\"auto\">Bytebase vs Flyway, Liquibase</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-liquibase/\" rel=\"nofollow\">Bytebase vs Liquibase</a></li>\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-flyway/\" rel=\"nofollow\">Bytebase vs Flyway</a></li>\n</ul>\n<p dir=\"auto\">Either Flyway or Liquibase is a library and CLI focusing on schema change. While Bytebase is an one-stop<br>\nsolution covering the entire database development lifecycle for Developers and DBAs to collaborate through a GUI-based workspace.</p>\n<p dir=\"auto\">Bytebase offers broad database support and provides a more comprehensive platform beyond schema migration, including features for security, governance, and observability. Many of our users tell us Bytebase is by far the best (and sometimes the only) database tool that can support their PostgreSQL and ClickHouse use cases, highlighting our robust tooling across various database systems.</p>\n<p dir=\"auto\"><a href=\"https://star-history.com/#bytebase/bytebase&amp;liquibase/liquibase&amp;flyway/flyway&amp;Date\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8833d72b930b5d923d2662e6a2916f665894e408e461fb01eb2d448d02cbfcf0/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d62797465626173652f62797465626173652c6c69717569626173652f6c69717569626173652c666c797761792f666c7977617926747970653d44617465\" alt=\"Star History Chart\" data-canonical-src=\"https://api.star-history.com/svg?repos=bytebase/bytebase,liquibase/liquibase,flyway/flyway&amp;type=Date\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Bytebase vs Yearning, Archery</h2>\n<p dir=\"auto\">Either Yearning or Archery provides a DBA operation portal. While Bytebase provides a collaboration<br>\nworkspace for DBAs and Developers, and brings DevOps practice to the Database Change Management (DCM).<br>\nBytebase has the similar <code class=\"notranslate\">Project</code> concept seen in GitLab/GitHub and provides native GitOps integration<br>\nwith GitLab/GitHub.</p>\n<p dir=\"auto\">Another key difference is Yearning, Archery are open source projects maintained by the individuals part-time. While Bytebase is open-sourced, it adopts an open-core model and is a commercialized product, supported<br>\nby a <a href=\"https://www.bytebase.com/about#team\" rel=\"nofollow\">fully staffed team</a> <a href=\"https://www.bytebase.com/changelog\" rel=\"nofollow\">releasing new version every 2 weeks</a>.</p>\n<p dir=\"auto\"><a href=\"https://star-history.com/#bytebase/bytebase&amp;cookieY/Yearning&amp;hhyo/Archery&amp;Date\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/99405ee6078cd26fffdea464b85147409657e38c8cd84e4236ce64aee904304f/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d62797465626173652f62797465626173652c636f6f6b6965592f596561726e696e672c6868796f2f4172636865727926747970653d44617465\" alt=\"Star History Chart\" data-canonical-src=\"https://api.star-history.com/svg?repos=bytebase/bytebase,cookieY/Yearning,hhyo/Archery&amp;type=Date\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Bytebase vs Metabase</h2>\n<p dir=\"auto\">Metabase is a data visualization and business intelligence (BI) tool. It's built for data teams and business analysts to make sense of the data.</p>\n<p dir=\"auto\">Bytebase is a database development platform. It's built for the developer teams to perform database operations during the application development lifecycle.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-metabase/\" rel=\"nofollow\">Bytebase vs Metabase</a></li>\n</ul>\n<p dir=\"auto\"><a href=\"https://star-history.com/#bytebase/bytebase&amp;metabase/metabase&amp;Date\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e110f8910f7dd6565daebaa2c06c03af3ea480c249c4c50da045289b3b92fb87/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d62797465626173652f62797465626173652c6d657461626173652f6d6574616261736526747970653d44617465\" alt=\"Star History Chart\" data-canonical-src=\"https://api.star-history.com/svg?repos=bytebase/bytebase,metabase/metabase&amp;type=Date\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Bytebase vs CloudBeaver</h2>\n<p dir=\"auto\">Both have web-based SQL clients. Additionally, Bytebase offers review workflow, more collaboration and security features.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-cloudbeaver/\" rel=\"nofollow\">Bytebase vs CloudBeaver</a></li>\n</ul>\n<p dir=\"auto\"><a href=\"https://star-history.com/#bytebase/bytebase&amp;dbeaver/cloudbeaver&amp;Date\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8433bd7c67bdc265c75a0d7e71b6c8e980c970607431d3cde51b20c395b36568/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d62797465626173652f62797465626173652c646265617665722f636c6f756462656176657226747970653d44617465\" alt=\"Star History Chart\" data-canonical-src=\"https://api.star-history.com/svg?repos=bytebase/bytebase,dbeaver/cloudbeaver&amp;type=Date\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Bytebase vs DBeaver / Navicat</h2>\n<p dir=\"auto\">SQL GUI Client such as MySQL Workbench, pgAdmin, DBeaver, Navicat provide a GUI to interact with the database. Bytebase not only provides a GUI client, it can also enforce centralized data access control for data security and governance.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-dbeaver/\" rel=\"nofollow\">Bytebase vs DBeaver</a></li>\n<li><a href=\"https://www.bytebase.com/blog/bytebase-vs-navicat/\" rel=\"nofollow\">Bytebase vs Navicat</a></li>\n</ul>\n<h2 dir=\"auto\">Bytebase vs Jira</h2>\n<p dir=\"auto\">Jira is a general-purpose issue ticketing system. Bytebase is a database domain-specific change management system. Bytebase provides an integrated experience to plan, review, and deploy database changes.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.bytebase.com/blog/use-jira-for-database-change/\" rel=\"nofollow\">Bytebase vs Jira</a></li>\n</ul>\n<h1 dir=\"auto\">👨‍👩‍👧‍👦 Community</h1>\n<p dir=\"auto\"><a href=\"https://discord.gg/huyw7gRsyA\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/413a4c75572289f0fe14859762c1ba9cc68166bcce93c66b7cb17614c9839749/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2532302d48616e672532306f75742532306f6e253230446973636f72642d3538363546323f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264266c6162656c436f6c6f723d454545454545\" alt=\"Hang out on Discord\" data-canonical-src=\"https://img.shields.io/badge/%20-Hang%20out%20on%20Discord-5865F2?style=for-the-badge&amp;logo=discord&amp;labelColor=EEEEEE\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://twitter.com/Bytebase\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/73f0ffe05544b883ed6f3071e73bc6dd995bdc028fe6d781993f960c28e83aba/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f6c6c6f7725323075732532306f6e253230547769747465722d3144413146323f7374796c653d666f722d7468652d6261646765266c6f676f3d74776974746572266c6162656c436f6c6f723d454545454545\" alt=\"Follow us on Twitter\" data-canonical-src=\"https://img.shields.io/badge/Follow%20us%20on%20Twitter-1DA1F2?style=for-the-badge&amp;logo=twitter&amp;labelColor=EEEEEE\" style=\"max-width: 100%;\"></a></p>\n<br>\n<h1 dir=\"auto\">🤔 Frequently Asked Questions (FAQs)</h1>\n<p dir=\"auto\">Check out our <a href=\"https://www.bytebase.com/docs/faq\" rel=\"nofollow\">FAQ</a>.</p>\n<br>\n<h1 dir=\"auto\">🙋 Contact Us</h1>\n<ul dir=\"auto\">\n<li>Interested in joining us? Check out our <a href=\"https://bytebase.com/jobs?source=github\" rel=\"nofollow\">jobs page</a> for openings.</li>\n<li>Want to solve your schema change and database management headache? Book a <a href=\"https://cal.com/bytebase/product-walkthrough\" rel=\"nofollow\">30min demo</a> with one of our product experts.</li>\n</ul>","updatedAt":"2025-05-21T15:50:55Z","upvoteCount":null,"author":{"login":"eryajf","avatarUrl":"https://avatars.githubusercontent.com/u/33259379?u=e4a4090a38ac2473aaed4ef9945233636776c6c3&v=4","url":"https://github.com/eryajf"},"category":null,"labels":{"edges":[{"node":{"name":"更多","color":"25B472"}},{"node":{"name":"SQL审核","color":"f2dbe7"}},{"node":{"name":"Bytebase","color":"272979"}}]},"comments":{"edges":[]}}},"pageContext":{"number":61,"previous":{"title":"soxft/busuanzi: 一个简单的网站统计分析器","number":60},"next":{"title":"sohutv/cachecloud: 支持 Redis 多种架构(Standalone、Sentinel、Cluster)高效管理、有效降低大规模 redis 运维成本，提升资源管控能力和利用率。平台提供快速搭建/迁移，运维管理，弹性伸缩，统计监控，客户端整合接入等功能","number":62}}},
    "staticQueryHashes": ["151096407","2861350382"]}