Limit non unique indexes in SQLAlchemy
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
Install this rule for wispbit
Quick Install
Run this one command to automatically install the rule:
Manual install
Copy the rule
---
include: *.py
---
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
'users',
['column_a', 'column_b', 'column_c', 'column_d'],
postgresql_concurrently=True
)
```
Good:
```python
def upgrade():
# Limit to most selective columns for better performance
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_selective_columns',
'users',
['column_d', 'column_b'],
postgresql_concurrently=True
)
```
Add the rule into your project
.wispbit/rules/sqlalchemy-limit-non-unique-index.md
Install this rule for Coderabbit
Copy the configuration below and add it to your repository as .coderabbit.yml
in your project root.
reviews:
path_instructions:
- path: "*.py"
instructions: |
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
'users',
['column_a', 'column_b', 'column_c', 'column_d'],
postgresql_concurrently=True
)
```
Good:
```python
def upgrade():
# Limit to most selective columns for better performance
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_selective_columns',
'users',
['column_d', 'column_b'],
postgresql_concurrently=True
)
```
Install this rule for Greptile
Greptile rules can be added through the web interface. Please see this documentation for details on how to add custom rules and context.
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
'users',
['column_a', 'column_b', 'column_c', 'column_d'],
postgresql_concurrently=True
)
```
Good:
```python
def upgrade():
# Limit to most selective columns for better performance
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_selective_columns',
'users',
['column_d', 'column_b'],
postgresql_concurrently=True
)
```
File Path Patterns:
Install this rule for GitHub Copilot
Copilot instructions can be added through the interface. See the documentation for details on how to create coding guidelines.
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
'users',
['column_a', 'column_b', 'column_c', 'column_d'],
postgresql_concurrently=True
)
```
Good:
```python
def upgrade():
# Limit to most selective columns for better performance
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_selective_columns',
'users',
['column_d', 'column_b'],
postgresql_concurrently=True
)
```
File Path Patterns:
Install this rule for Graphite Diamond
Diamond custom rules can be added through the interface. See the documentation for details on how to create custom rules.
Limit non-unique indexes to a maximum of three columns in PostgreSQL databases:
Bad:
```python
def upgrade():
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_multiple_columns',
'users',
['column_a', 'column_b', 'column_c', 'column_d'],
postgresql_concurrently=True
)
```
Good:
```python
def upgrade():
# Limit to most selective columns for better performance
with op.get_context().autocommit_block():
op.create_index(
'index_users_on_selective_columns',
'users',
['column_d', 'column_b'],
postgresql_concurrently=True
)
```
File Path Patterns: